【发布时间】:2015-07-10 16:04:22
【问题描述】:
我们以这个为例:
- 我在一个数组 urls 中有 3 个 url
- require 函数返回一个只进行 $http 调用的承诺
这是一个工作代码,但由于数组可以是“1 到 n”,这显然不是我想要的。 我需要 3 个要求作为瀑布,而不是并行。 在最后一个承诺中,我需要解决一个最终承诺,即 var deferred。
require(urls[0]).then(function () {
require(urls[1]).then(function () {
require(urls[2]).then(function () {
deferred.resolve();
});
});
})
这种方法不起作用,因为这将并行执行所有 $http 调用。
var promises = [];
angular.forEach(urls, function (value) {
promises.push(require(value));
});
$q.all(promises).then(function () {
deferred.resolve();
});
有没有使用 for/cycle 的好方法?
【问题讨论】:
标签: javascript angularjs promise q deferred