📜  如何在 JavaScript 中按顺序执行多个 Promise?

📅  最后修改于: 2022-05-13 01:56:23.819000             🧑  作者: Mango

如何在 JavaScript 中按顺序执行多个 Promise?

在本文中,我们将尝试了解如何使用 JavaScript 提供的几种技术或方法轻松地以顺序方式(一个接一个)执行多个 Promise。

让我们首先快速了解如何使用 JavaScript 提供的以下语法来创建 Promise。

语法:以下语法可用于在 JavaScript 中创建 Promise。

let promise = new Promise((resolve, reject) => resolve(10))

通过使用上述语法,我们可以通过解决它(具有已解决状态)或拒绝它(具有已拒绝状态)来成功创建我们的 Promise。

示例:在这个示例中,我们将创建一个简单的 Promise 来查看它是如何工作的或如何执行的。

Javascript


Javascript


Javascript


Javascript


输出:

GeeksforGeeks

现在我们已经了解了如何创建一个 Promise,让我们快速查看和可视化我们如何以顺序方式执行多个 Promise。

以下是我们可以轻松地以顺序方式执行多个 Promise 的某些方法。

方法一:

  • 在这种方法中,我们将使用Promise.all()方法,该方法将单个数组中的所有 Promise 作为其输入。
  • 结果,这个方法本身执行了所有的 Promise,并返回一个新的 Promise,其中所有其他 Promise 的值组合在一起。
  • 新返回的单个 Promise 中的值将按顺序排列(一个接一个)。
  • 将返回的输出采用数组的形式,其中包含被其他两个 Promise 解析或拒绝的值。

示例:让我们看一下说明上述方法的以下代码:

Javascript


输出:

[ 'Hello! ', 'GeeksforGeeks' ]

方法二:

  • 在这种方法中,我们将使用Promise.allSettled() ,它将以与 Promise.all() 方法非常相似的方式执行,通过将 Promise 作为单个数组中的输入并按顺序执行它们来执行。
  • 略有不同的是,这个 Promise.allSettled() 方法返回一个对象数组,其中与每个 promise 的状态(已完成或拒绝)一起,每个 promise 的值也在那里。

示例:让我们看一下说明上述方法的以下代码:

Javascript


输出:

[
  { status: 'fulfilled', value: 'Hello! ' },
  { status: 'fulfilled', value: 'GeeksforGeeks' }
]

方法3:

  • 在这种方法中,我们将使用 for-of 循环和async-await方法。
  • 我们将在 Promise 数组上运行循环,进一步创建一个异步函数,从而将结果与 try-catch 块一起等待到结果 Promise 中,从而在浏览器的控制台上打印结果。

示例:让我们看一下说明上述方法的以下代码:

Javascript


输出:

Hello! 
GeeksforGeeks