キューを使用して非同期リクエストをシリアル化する必要があります。周りを見回すと、Mike Bostock による小さなライブラリが見つかりました。しかし、promise オブジェクトと一緒に使用する方法については少し混乱しています。
そのため、ユーザー インターフェイスから大量の要求が寄せられています。
function addTask(d){
AsyncOper(d)
.then(function () {
refresh()
});
}
AsyncOper は promise オブジェクト (Angular js 実装 - $q) を返します。
私はaqを次のように定義しています
var q = queue(1);
どうすればaddTask
使えるようになりますかq
私の最初の試みは次のとおりです。
function addTask(d){
q.defer(request, d)
q.awaitAll(function(error, results) { console.log("all done!"); });
}
function request(d, cb) {
AsyncOper(d)
.then(function () {
refresh();
cb(null, "finished "+ d);
})
}
しかし、複数のリクエストを実行しようとしていることがわかるため、実際には操作をシリアル化していません。この方法で promise と queue を組み合わせることは可能ですか、それとももっと良い方法がありますか?
ありがとうございました。