Promise.race()方法的小妙招

首先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

你可能感兴趣的:(javascript,前端)