您的位置:首页 > 其它

promise.all 异常处理

2015-09-14 11:33 267 查看
promise.all中任何一个promise出现错误的时候都会执行reject,

导致其它正常返回的数据也无法使用了

有两个解决方法:

1.全部改为串行调用(失去了node并发优势)

2.当promise捕获到error的时候,代码吃掉这个异常,返回resolve,约定特殊格式表示这个调用成功了


varp1=newPromise(function(resolve,reject){
setTimeout(function(){
resolve(1);
},0)
});
varp2=newPromise(function(resolve,reject){
setTimeout(function(){
resolve(2);
},200)
});
varp3=newPromise(function(resolve,reject){
setTimeout(function(){
try{
console.log(XX.BBB);
}
catch(exp){
resolve("error");
}
},100)
});
Promise.all([p1,p2,p3]).then(function(results){
console.log("success")
console.log(results);
}).catch(function(r){
console.log("err");
console.log(r);
});



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: