gpt4 book ai didi

javascript - Promise 的串行执行

转载 作者:行者123 更新时间:2023-12-02 14:25:42 25 4
gpt4 key购买 nike

我想执行一个带有从值数组循环的参数的函数。每次执行都必须等待前一个执行完成。下面的示例代码应打印:

Done: 1
Done: 2
Done: 3
Done: 4
Done: 5

谢谢!

'use strict';

function f1(value) {
return new Promise((resolve, reject) => {
setTimeout(function() {
console.log('Done: ' + value);
resolve(true)
}, Math.random() * 2000 + 1000);
});
}

const vs = [0,1,2,3,4,5];

vs.reduce((start, next) => {
return f1(next)
})

最佳答案

如果你只想要 ES6,试试这个:

'use strict';

function f1(value) {
return new Promise((resolve, reject) => {
setTimeout(function() {
console.log('Done: ' + value);
resolve(true)
}, Math.random() * 2000 + 1000);
});
}

const vs = [0,1,2,3,4,5];

let promiseChain = vs.reduce((start, next) => {
return start.then(() => f1(next));
}, Promise.resolve());

promiseChain.then(() => console.log('Done!'));

如果您有兴趣从分辨率中获取值,可以尝试 this也是如此。

关于javascript - Promise 的串行执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38270672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com