接收一组异步任务,并按照顺序依次执行,确保前一个任务完成后再执行下一个任务。
关键点:使用 reduce 方法和 Promise 的链式调用来实现异步任务的串行执行和结果的累加。
function series(tasks) {
return tasks.reduce((promiseChain, currentTask) => {
return promiseChain.then((result) => {
return currentTask().then((currentResult) => {
return result.concat(currentResult);
});
});
}, Promise.resolve([]));
}