我有一个VPService.requestQueue
,它是一个包含以下内容的对象数组:
我需要在所有承诺完成后做一些事情,所以我使用的是Promise.all(VPService.requestQueue).then(...)
,但它不起作用。
我尝试创建canceller
和promise
的数组,然后在两个上调用Promise.all()
,然后在Promise.all()
内的两个console.logs之前调用收到承诺的答复。
//getting an array of the promises from VPService.requestQueue
var requestQueuePromises = VPService.requestQueue.map(function (queue) {
return queue.canceller.promise;
});
//gettin array of cancellers
var requestQueueCancellers = VPService.requestQueue.map(function (queue) {
return queue.canceller;
});
现在使用Promise.all()来了解承诺何时结束,但是在收到承诺结果之前,两个console.log都被打印出来。
Promise.all(requestQueueCancellers).then(function () {
console.log("After all cancellers")
});
Promise.all(requestQueuePromises).then(function () {
console.log("After all promises")
});