【发布时间】:2018-02-28 16:33:51
【问题描述】:
我对 $q 角度承诺有点陌生。这是我的代码结构:
$q.all(promises).then(function(results) {
results.forEach(function(data, status, headers, config) {
console.log(status);
});
$scope.saveDocumentCaseState();
}, function errorCallBack(response) {
console.log('error while mass update case entries');
console.log(response);
$scope.submitToWsSuccessful = 2;
});
是否有可能访问每个承诺何时在下一个承诺之前执行的结果?
【问题讨论】:
-
简单回答:不。请注意,$q.all 的全部意义在于并行执行它们,而不是一个接一个地执行。
-
@JBNizet 嗯。我可以使用 $q 中的其他东西来执行一个又一个承诺,并且我可以在哪里看到每个承诺的结果以便执行一些其他代码?
-
promise.then() 正是这样做的。
-
@JBNizet 嗯。但后来我有一个小问题。我有一个函数,它只需要在所有承诺都实现时执行,另一方面,我需要能够在每个承诺完成后和另一个承诺开始之前执行代码。只有promise.then()我真的找不到答案
-
好吧,第一种情况使用 all,第二种情况使用 then()。或者干脆在最后的then()中执行终端函数。
标签: angularjs promise angular-promise q