2020-01-09
描述
将一个数组中的 Promises 按顺序进行运行。
提示
- 使用
Array.prototype.reduce()
创建一个 Promise 链 - 当成功调用后,每一次的 promise 都返回下一次的 promise
代码
const runPromisesInSeries = ps => ps.reduce((p, next) => p.then(next), Promise.resolve());
示例
按顺序打印出延迟的时间:
const delay = d => new Promise(r => setTimeout(() => {
r(d);
console.log(`delay ${d}`);
}, d));
runPromisesInSeries([() => delay(1000), () => delay(2000)]); // 1s 后输出 delay 1000,3s 后输出 delay 2000
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于