Promise.all()

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

若是参数中  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则失败spa

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)
});
相关文章
相关标签/搜索