码迷,mamicode.com
首页 > 其他好文 > 详细

关于Promise.all

时间:2018-05-18 14:10:00      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:int   顺序   存储   数值   函数   mis   对象   个数   创建   

Promise.all() 方法接收单个可迭代对象(如数组)作为参数,并返回一个promise。每个Promise都用一个数值进行了决议,对Promise.all() 的调用创建了新的 Promise p4。这些值的存储顺序保持了待决议(resolve)的Promise顺序,与完成的先后顺序无关,因此可以将结果匹配到每个Promise。如果任意Promise被拒绝,则p4会立即拒绝,不必等其他 Promise结束。

/* eslint-disable prefer-promise-reject-errors,eol-last */
let p1 = new Promise((resolve, reject) => resolve(42))
let p2 = new Promise((resolve, reject) => reject(43))
let p3 = new Promise((resolve, reject) => resolve(44))

let p4 = Promise.all([p1, p2, p3])
let p5 = Promise.all([p1, p3])
p1.then(v=>console.log(‘p1 then: ‘ + v)) // p1 then: 42
p4.then(v=>console.log(‘p4 then: ‘ + v)) // 不执行
p4.catch(v=>console.log(‘catch: ‘ + v)) // catch: 43 p2被拒绝,p4的拒绝处理函数立即调用,不会等p1和p3结束执行。但p1和p2仍然会执行。
p5.then(v=>{
  console.log(Array.isArray(v)) // true
  console.log(v) // [ 42, 44 ]
})

 

关于Promise.all

标签:int   顺序   存储   数值   函数   mis   对象   个数   创建   

原文地址:https://www.cnblogs.com/dodocie/p/9055240.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!