如下demo
let P1 = new Promise( resolve => {
setInterval( () => {
resolve("I\'m P1");
},1000)
});
let P2 = new Promise( resolve => {
setInterval( () => {
resolve("I\'m P2");
},1500)
});
Promise.race([P1 , P2])
.then(value => {
console.log(value)
})
console.log('value')//与Promise是一起执行的,没有时间先后顺序
注意:
1、race方法与all方法相似,不同点在于会输出数组中最先结束的那个Promise,但是数组中所有内容执行完才是这个进程执行完
输出结果:
value
I'm P1
结果显示,优先输出value。是因为异步处理问题,value并不会等待上面的Promise执行完在开始执行,所以由于时间延迟,优先输出‘value’。