Ask*_*mov 4 javascript asynchronous promise angularjs q
我有一个整数id数组,例如
var a=[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
我需要为每个ID执行异步远程调用.每个调用都是使用$ resource执行的WebAPI请求,并显示为promise.
我需要创建一个函数来获取这些ID的数组,然后初始化递归的promises链.该链应该逐个导致对每个ID进行相应的webapi调用.这些调用不应该是并行的,而应该是链接的.
有问题的函数返回一个"主"承诺,应根据异步Web调用的结果解决或拒绝.也就是说,如果由于与服务器断开连接而导致递归中的某些承诺被拒绝,那么主承诺也应该失败.在正常情况下,"主要"承诺必须在所有请求完成时解决.
我怎样才能在angularjs中实现这一目标?
您使用reduce数组将Promises链接在一起.没有必要使这个递归.
// for angularjs: var Q = $q.when;
var p = a.reduce(function(prev, el) {
return prev.then(function(arr) {
return makeRequest(el).then(function(res) {
return arr.concat([res]);
});
});
}, Q([]));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1196 次 |
| 最近记录: |