Promise静态方法(resolve,reject,all,race)
这4个方法都是静态方法,非实例方法,用Promise对象是无法调用的。
Promise.resolve将对象转为Promise对象。函数声明:Promise.resolve(value);。
Promise.reject将对象转换成一个状态为Rejected的全新的Promise对象。函数声明:Promise.reject(error);
Promise.all方法用于将多个Promise实例对象,包装成一个新的Promise实例对象。函数声明:Promise.all(iterable);
Promise.race方法和all方法类似,函数声明:Promise.race(iterable);
关于Promise.all
Promse.all在处理多个异步处理时非常有用,比如说一个页面上需要等两个或多个ajax的数据回来以后才正常显示,在此之前只显示loading图标。
关于Promise.race
顾名思义,Promse.race就是赛跑的意思,意思就是说,Promise.race([p1, p2, p3])里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态。
谨慎使用Promise.all
如果有一个回调执行失败,then是不会执行的,或者说,所有的promise也都失败了
即使有几个promise已经进入resolved状态,也会阻塞在那里直到所有的promise完成