You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Fetch API发送多请求并等待全部完成后执行后续代码

批量处理Fetch请求并等待全部完成

要实现异步发送大量Fetch请求,同时等待所有请求处理完成后再执行后续代码,可以借助Promise.all(),同时封装重复的请求逻辑来简化代码:

1. 封装重复的请求逻辑

把重复的Fetch调用和结果处理封装成函数,避免冗余代码:

const sendRequest = (url, requestData) => {
  return fetch(url, { method: 'post', body: requestData })
    .then(response => response.json())
    .then(data => {
      if (data.STATUS === 'SUCCESSFUL') {
        // 这里编写请求成功后的处理逻辑
        // 比如更新状态、存储数据等
      }
      return data; // 返回数据,方便后续统一处理
    })
    .catch(error => {
      // 捕获请求过程中的异常
      console.error('请求出错:', error);
      throw error; // 抛出错误,让Promise.all能感知到失败
    });
};

2. 批量发起请求并等待全部完成

将所有请求的Promise实例存入数组,通过Promise.all()等待所有请求完成:

// 准备所有请求的Promise(示例中假设你有多组请求数据)
const requests = [
  sendRequest(url, someData1),
  sendRequest(url, someData2),
  sendRequest(url, someData3)
  // 可根据需求添加更多请求
];

// 等待所有请求处理完成后执行后续代码
Promise.all(requests)
  .then(allResults => {
    // 所有请求都成功完成后,执行这里的逻辑
    console.log('所有请求处理完毕:', allResults);
    // 在这里编写你需要延迟执行的代码
  })
  .catch(error => {
    // 只要有一个请求失败,就会进入这个回调
    console.error('存在请求失败:', error);
  });

额外说明

  • Promise.all()会并行发起所有请求,相比串行请求效率更高
  • 如果希望即使部分请求失败,也等待所有请求完成,可以用Promise.allSettled()替代Promise.all(),它会返回每个请求的结果(成功或失败)
  • 封装后的函数便于统一修改请求逻辑,比如添加请求头、统一错误处理等

内容的提问来源于stack exchange,提问作者Abdul Raheem Dumrai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 14:10:48