📅  最后修改于: 2023-12-03 14:42:26.594000             🧑  作者: Mango
Promise.race()
方法返回一个 Promise,该 Promise 解析于第一个解析或拒绝的 Promise。
该方法接受一个可迭代对象作为参数,例如数组,其中每个元素都是一个 Promise。它会返回一个新的 Promise 对象,该对象与第一个解析或拒绝的 Promise 相关联。
Promise.race(iterable)
参数:
iterable
(可迭代对象):一个可迭代对象,如数组,其每个元素都是一个 Promise 对象。返回值:
下面是一个使用 Promise.race()
方法的示例:
const promise1 = new Promise((resolve) => {
setTimeout(() => {
resolve('Promise 1');
}, 1000);
});
const promise2 = new Promise((resolve) => {
setTimeout(() => {
resolve('Promise 2');
}, 2000);
});
const promise3 = new Promise((resolve) => {
setTimeout(() => {
resolve('Promise 3');
}, 3000);
});
Promise.race([promise1, promise2, promise3])
.then((result) => {
console.log(result); // 输出:'Promise 1'
})
.catch((error) => {
console.error(error);
});
在上面的示例中,我们创建了三个 Promise 对象,它们分别在一定的延迟后解析。然后我们使用 Promise.race()
方法将这三个 Promise 对象传递给它,并使用 .then()
方法处理第一个成功解析的 Promise。在本例中,由于 promise1
的延迟时间最短,因此它第一个解析,我们会得到 'Promise 1'
的输出。
Promise.race()
方法的可迭代对象中的任何一个元素是已经解析或拒绝的 Promise,那么 Promise.race()
将会立即返回该 Promise 的解析值或拒因。Promise.race()
方法的可迭代对象为空,则返回的 Promise 将永远等待,不会被解析或拒绝。更多关于 Promise 的方法和用法,请参考 MDN Promise 文档。
以上是有关 JavaScript Promise.race() 方法的介绍,该方法可用于处理多个 Promise 对象,以便在第一个解析或拒绝的 Promise 上继续执行操作。