for (let i = 0; i < 10; i++) {
const promise = new Promise((resolve, reject) => {
const timeout = Math.random() * 1000;
setTimeout(() => {
console.log(i);
}, timeout);
});
// TODO: Chain this promise to the previous one (maybe without having it running?)
}
Run Code Online (Sandbox Code Playgroud)
以上将给出以下随机输出:
6
9
4
8
5
1
7
2
3
0
Run Code Online (Sandbox Code Playgroud)
任务很简单:确保每个promise只在另一个(.then())之后运行.
出于某种原因,我找不到办法.
我尝试了生成函数(yield),尝试了返回promise的简单函数,但在一天结束时它总是归结为同样的问题:循环是同步的.
使用异步我只是使用async.series().
你是如何解决的?