前端面试题 - 109. 实现一个简单的异步串行执行函数(Series)

303 阅读1分钟

接收一组异步任务,并按照顺序依次执行,确保前一个任务完成后再执行下一个任务。

关键点:使用 reduce 方法和 Promise 的链式调用来实现异步任务的串行执行和结果的累加。

function series(tasks) {
  return tasks.reduce((promiseChain, currentTask) => {
    return promiseChain.then((result) => {
      return currentTask().then((currentResult) => {
        return result.concat(currentResult);
      });
    });
  }, Promise.resolve([]));
}