首页 > 其他 > 详细

Promise.all()

时间:2019-09-24 12:54:36      阅读:67      评论:0      收藏:0      [点我收藏+]

Promise.all(iterable) 方法返回一个 Promise 实例,此实例在 iterable 参数内所有的 promise 都“完成(resolved)”或参数中不包含 promise 时回调完成(resolve);

如果参数中  promise 有一个失败(rejected),此实例回调失败(reject),失败原因的是第一个失败 promise 的结果。

官网例子:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

var promise1 = Promise.resolve(3);
var promise2 = null;
var promise3 = new Promise(function(resolve, reject) {
  setTimeout(resolve, 100, foo);
});

Promise.all([promise1, promise2, promise3]).then(function(values) {
  console.log(values);
});
// expected output: Array [3, 42, "foo"]

如果有一个是reject则失败

var promise1 = Promise.resolve(3);
var promise2 = reject();
var promise3 = new Promise(function(resolve, reject) {
  setTimeout(resolve, 100, foo);
});

Promise.all([promise1, promise2, promise3]).then(function(values) {
  console.log(values);
}).catch(()=>{
     console.log(err);
})

结果:Error: reject is not defined

技术分享图片

 

 

finally() 方法返回一个Promise。在promise结束时,无论结果是fulfilled或者是rejected,都会执行指定的回调函数。这为在Promise是否成功完成后都需要执行的代码提供了一种方式。
这避免了同样的语句需要在then()catch()中各写一次的情况。
p.finally(onFinally);

p.finally(function() {
   // 返回状态为(resolved 或 rejected)
});

Promise.all()

原文:https://www.cnblogs.com/chen-yi-yi/p/11577125.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!