依次运行 Promise

Beginner

This tutorial is from open-source community. Access the source code

简介

在本实验中,我们将探索如何使用 JavaScript 依次运行一系列 Promise。我们将使用 Array.prototype.reduce() 方法来创建一个 Promise 链,其中每个 Promise 在解决后返回下一个 Promise。在本实验结束时,你将更好地理解如何按顺序执行 Promise,从而将你的编程技能提升到一个新的水平。

依次运行 Promise

要依次执行一系列 Promise,请使用 Array.prototype.reduce() 创建一个 Promise 链。每个 Promise 在解决后返回下一个 Promise。

首先,打开终端/SSH 并输入 node 开始练习编码。

以下是代码示例:

const runPromisesInSeries = (ps) =>
  ps.reduce((p, next) => p.then(next), Promise.resolve());

然后,你可以使用 runPromisesInSeries 函数按顺序执行 Promise,如下例所示:

const delay = (d) => new Promise((r) => setTimeout(r, d));
runPromisesInSeries([() => delay(1000), () => delay(2000)]);
// 这段代码按顺序运行每个 Promise,总共需要 3 秒才能完成。

总结

恭喜你!你已经完成了「依次运行 Promise」实验。你可以在 LabEx 中练习更多实验来提升你的技能。