1 2function runAsync(x) { 3 const p = new Promise(r => 4 setTimeout(() => r(x, console.log(x)), 1000) 5 ); 6 return p; 7} 8function runReject(x) { 9 const p = new Promise((res, rej) => 10 setTimeout(() => rej(`Error: ${x}`, console.log(x)), 1000 * x) 11 ); 12 return p; 13} 14Promise.race([runReject(0), runAsync(1), runAsync(2), runAsync(3)]) 15 .then(res => console.log("result: ", res)) 16 .catch(err => console.log(err)); 17
参考答案:
.race()的作用也是接收一组异步任务,然后并行执行异步任务,只保留取第一个执行完成的异步操作的结果,其他的方法仍在执行,不过执行结果会被抛弃。
0
'Error: 0'
1
2
3
最近更新时间:2022-01-09