Skip to content

并发请求

背景

有些场景下,需要同时请求多个接口,并在所有接口都返回结果后,进行下一步操作。例如,用户在一个页面上触发了多个操作,每个操作都需要从不同的 API 获取数据。为了提高效率,我们希望能够并发地发起这些请求,而不是一个接一个地等待每个请求完成。

实现思路

  1. 使用 Promise.all 方法来处理多个并发请求。
  2. 将每个请求封装成一个返回 Promise 的函数。
  3. 使用 Promise.all 来等待所有请求完成,并处理结果。

核心点

Promise.all 接受一个包含多个 Promise 的数组,并返回一个新的 Promise,该 Promise 在所有输入的 Promise 都成功时解析,或者在任何一个输入的 Promise 失败时拒绝。

代码示例

js
Promise.all([fetchData('/api/data1'), fetchData('/api/data2'), fetchData('/api/data3')])
  .then((results) => {
    console.log('All data fetched successfully:', results)
    // 处理所有请求的结果
  })
  .catch((error) => {
    console.error('Error fetching data:', error)
  })

基于 MIT 许可发布