Javascript Promise.all()不使用angularjs

Javascript Promise.all()不使用angularjs,javascript,angularjs,angular-promise,Javascript,Angularjs,Angular Promise,我有一个VPService.requestQueue,它是一个包含以下内容的对象数组: 在完成所有承诺之后,我需要做一些事情,所以我使用Promise.all(VPService.requestQueue)。然后(…),但它不起作用 我尝试将取消器和promise组成一个数组,然后在这两个控制台上调用promise.all(),这promise中的.log。在我收到promise的响应之前,会调用all() //getting an array of the promises

我有一个
VPService.requestQueue
,它是一个包含以下内容的对象数组:

在完成所有承诺之后,我需要做一些事情,所以我使用
Promise.all(VPService.requestQueue)。然后(…)
,但它不起作用

我尝试将
取消器
promise
组成一个数组,然后在这两个控制台上调用
promise.all()
,这
promise中的.log。在我收到promise的响应之前,会调用all()

        //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")
        });

取消符看起来像是延迟对象,不可用的对象不能与
Promise.all一起使用。但是,如果你履行了他们的承诺,你就不需要这样做。您是否可以在问题中添加一个,理想情况下使用堆栈片段(工具栏按钮)使其可运行?在
取消器
下的
承诺
对象是否具有
然后
功能?@T.J.Crowder谢谢您的回答。很抱歉,这一切背后的代码非常长且复杂。那么,有什么方法可以阻止正在进行的延期呢?我尝试了
canceler.resolve()
,但是第一个延迟的我们总是被执行,如果没有的话,有没有办法等到所有延迟完成后再做什么呢?@Oskar是的,他们do@CodingMcCodington所以用
$q.all(…)