我需要使用队列来序列化我的异步请求。环顾四周,我在这里找到了 Mike Bostock 的一个小型图书馆。但是我有点困惑,因为 tp 如何将它与 promise 对象一起使用。
所以,我有大量来自用户界面的请求。
function addTask(d){
AsyncOper(d)
.then(function () {
refresh()
});
}
AsyncOper 返回一个 promise 对象(角度 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);
})
}
但它并没有真正序列化操作,因为我看到它试图运行多个请求。是否可以以这种方式结合承诺和队列,或者有更好的方法吗?
谢谢你。