1、 Promise.all() 方法用于将多个Promise 实例,包装成一个新的 Promise 实例
var getJSON = function(id){
|
var getJSON = function(id){
|
Promise.all
方法接受一个数组作为参数,p1
、p2
、p3
都是 Promise 实例,如果不是,就会先调用下面讲到的Promise.resolve
方法,将参数转为 Promise 实例,再进一步处理。(Promise.all
方法的参数可以不是数组,但必须具有 Iterator 接口,且返回的每个成员都是 Promise 实例。)
1、其代码中P的状态是由参数promises数据中的每个一promise对象状态决定的,只有所有都promise都是完成的状态(resolve)才会执行then的第一个与之对应的参数函数,并接收所有promise返回的数据构成的数据数组
2、promises对象的参数函数之中有一个被rejected
,P的状态就变成rejected
,此时第一个被reject
的实例的返回值,会传递给p
的回调函数。并补catch捕获到