Promise.race()
race 函数返回一个Promise,这个Promise根据传入的Promise中的第一个确定状态--不管是接受还是拒绝--的状态而确定状态。
Promise.race方法同样是将多个Promise实例,包装成一个新的Promise实例。
var p1 = new Promise(function(resolve, reject) {
setTimeout(resolve, 500, "one");
});
var p2 = new Promise(function(resolve, reject) {
setTimeout(resolve, 100, "two");
});
Promise.race([p1, p2]).then(function(value) {
console.log(value); // "two"
// Both resolve, but p2 is faster
});
上面代码中,只要p1、p2之中有一个实例率先改变状态,p的状态就跟着改变。那个率先改变的Promise实例的返回值,就传递给p的回调函数。