首先Promise.race() 的用法是将多个promise实例,包装成一个新的promise实例例如:
const p = Promise.race([p1, p2, p3])
在以上的代码中只要有一个返回结果就会执行将返回值赋值给变量p,如果一直没有返回值则返回reject
下面这个例子是如果3秒之内没有返回结果则将返回reject
const p = Promise.race([
fetch('/login'),
new Promise(function (resolve, reject) {
setTimeout(() => reject(new Error('request timeout')), 3000)
})
]);
p
.then(val=>console.log(val))
.catch(error=>console.error(error));
如果3秒之内fetch没有返回结果则p的状态就会变味rejected