首页 > 文章列表 > JavaScript 中的 Promise.any() 方法与 Promise.race() 方法有何不同?

JavaScript 中的 Promise.any() 方法与 Promise.race() 方法有何不同?

309 2023-09-04

在本文中,您将了解 Promise.any() 方法与 JavaScript 中的 Promise.race() 方法有何不同。

JavaScript 中的 Promise.any() 方法是 Promise 并发方法之一。当需要完成第一个任务时,它很有用。

JavaScript 中的 Promise.race() 方法是 Promise 并发方法之一。当第一个异步任务需要完成但不关心其最终状态(即它可以成功或失败)时,它很有用。

示例 1

在这个例子中,我们来看看 Promise.any() 方法是如何工作的

console.log("Defining three promise values: promise1, promise2 and promise3");
const promise1 = Promise.resolve(1);
const promise2 = new Promise((resolve, reject) => {
   setTimeout(resolve, 2 , 'Promise Two');
});
const promise3 = 3;

console.log("Running Promise.any method on all the three promise values")

Promise.any([promise1, promise2, promise3]).then((values) => console.log(values));

说明

  • 第 1 步 - 定义三个 Promise 值,即 Promise1、Promise2、Promise3 并向它们添加值。

  • 第 2 步 - 对所有 Promise 值运行 Promise.any() 方法。

  • 第 3 步 - 将承诺值显示为结果。

示例 2

在这个例子中,我们来看看 Promise.race() 方法是如何工作的

console.log("Defining three promise values: promise1, promise2 and promise3");
const promise1 = Promise.resolve(Resolving first async promise);
const promise2 = new Promise((resolve, reject) => {
   setTimeout(resolve, 2 , 'Promise Two');
});
const promise3 = 3;

console.log("Running Promise.race method on all the three promise values")

Promise.race([promise1, promise2, promise3]).then((values) => console.log(values));

说明

  • 第 1 步 - 定义三个 Promise 值,即 Promise1、Promise2、Promise3 并向它们添加值。

  • 第 2 步 - 对所有 Promise 值运行 Promise.race() 方法。

  • 第 3 步 - 将承诺值显示为结果。