当前位置:首页 > JavaScript

js实现同时发多个请求

2026-01-31 07:53:42JavaScript

并发请求的实现方法

在JavaScript中实现同时发送多个请求,可以通过以下几种方式实现:

Promise.all

使用Promise.all可以并行执行多个异步请求,并在所有请求完成后统一处理结果。适用于需要等待所有请求完成后再进行后续操作的场景。

js实现同时发多个请求

const urls = ['url1', 'url2', 'url3'];
const requests = urls.map(url => fetch(url));

Promise.all(requests)
  .then(responses => Promise.all(responses.map(res => res.json())))
  .then(data => console.log(data))
  .catch(error => console.error(error));

Promise.allSettled

Promise.all类似,但不会因为某个请求失败而中断,会等待所有请求完成(无论成功或失败)。适用于需要处理部分失败请求的场景。

js实现同时发多个请求

const urls = ['url1', 'url2', 'url3'];
const requests = urls.map(url => fetch(url));

Promise.allSettled(requests)
  .then(results => {
    results.forEach(result => {
      if (result.status === 'fulfilled') {
        console.log(result.value);
      } else {
        console.error(result.reason);
      }
    });
  });

async/await结合循环

使用async/await语法结合循环可以更直观地处理并发请求。适用于需要按顺序处理结果的场景。

async function fetchAll(urls) {
  const results = [];
  for (const url of urls) {
    try {
      const response = await fetch(url);
      results.push(await response.json());
    } catch (error) {
      console.error(`Failed to fetch ${url}:`, error);
    }
  }
  return results;
}

fetchAll(['url1', 'url2', 'url3']).then(data => console.log(data));

使用第三方库

某些第三方库(如axios)提供了更简洁的并发请求方式。适用于项目已使用该库的场景。

const axios = require('axios');
const urls = ['url1', 'url2', 'url3'];

axios.all(urls.map(url => axios.get(url)))
  .then(axios.spread((...responses) => {
    console.log(responses.map(res => res.data));
  }))
  .catch(error => console.error(error));

注意事项

  • 浏览器对并发请求数有限制(通常为6-8个),超出限制的请求会被排队。
  • 大量并发请求可能导致服务器压力过大,需合理控制并发数量。
  • 错误处理是并发请求中的重要环节,应确保每个请求都有适当的错误处理机制。

以上方法可根据具体需求选择使用,Promise.allPromise.allSettled是最常用的原生解决方案。

标签: 多个js
分享给朋友:

相关文章

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…