Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js foreach 异步

作者:亡梦   发布日期:2025-11-26   浏览:68

// 使用 async/await 和 Promise.all 来处理异步操作

const asyncForeach = async (array, callback) => {
  // 创建一个 Promise 数组,每个元素是通过调用 callback 函数返回的 Promise
  const promises = array.map(callback);

  // 等待所有 Promise 完成
  await Promise.all(promises);
};

// 示例代码:假设我们有一个异步函数 simulateAsyncOperation
const simulateAsyncOperation = (item) => {
  return new Promise((resolve) => {
    setTimeout(() => {
      console.log(`Processed ${item}`);
      resolve();
    }, 1000); // 模拟异步操作,延迟1秒
  });
};

// 使用 asyncForeach 处理数组中的异步操作
(async () => {
  const items = [1, 2, 3, 4, 5];

  await asyncForeach(items, (item) => simulateAsyncOperation(item));

  console.log('All items processed');
})();

解释说明:

  1. asyncForeach 函数:这个函数接受一个数组和一个回调函数作为参数。它使用 map 方法遍历数组,并将每次调用回调函数的结果(即 Promise)存储在一个新的数组中。然后使用 Promise.all 等待所有 Promise 完成。

  2. simulateAsyncOperation 函数:这是一个模拟的异步操作函数,它返回一个 Promise,在 1 秒后完成并打印出处理的项。

  3. 使用 asyncForeach:在最后的立即执行函数中,我们定义了一个包含数字的数组 items,并调用 asyncForeach 来处理这些项。当所有项都处理完毕后,会打印 "All items processed"。

这种方式可以确保所有的异步操作并行执行,并且在所有操作完成后继续执行后续代码。

上一篇:js array最后一个元素

下一篇:js for each

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组连接

js json数组

js 数组复制

js 复制数组

js 数组拷贝

js 对象数组合并

js 对象转数组

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站