在 JavaScript 中,可以使用 'map' 方法结合 'async/await' 实现在 'map' 中执行异步操作并串行执行的功能。

下面是一个示例代码:

const arr = [1, 2, 3, 4, 5];

async function asyncOperation(item) {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve(item * 2);
    }, Math.random() * 1000);
  });
}

async function run() {
  const results = [];

  for (const item of arr) {
    const result = await asyncOperation(item);
    results.push(result);
  }

  console.log(results);
}

run();

在上面的代码中,'asyncOperation' 函数模拟了一个异步操作,通过返回一个 Promise 对象来表示异步结果。'run' 函数使用 'for...of' 循环遍历数组中的每个元素,并使用 'await' 来等待异步操作的结果。在每次循环中,只有前一个异步操作完成后,才会进行下一个异步操作,从而实现了串行执行的效果。

最后,我们可以看到控制台输出了 '[2, 4, 6, 8, 10]',表示每个元素都被乘以了 2。

请注意,上述代码中的 'for...of' 循环是按照数组的顺序依次执行异步操作的。如果需要并行执行异步操作,可以将 'for...of' 循环替换为 'Promise.all' 方法。


原文地址: https://www.cveoy.top/t/topic/o5I7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录