如何保证同时请求五个接口保证按照顺序输出结果

202 阅读1分钟

1.使用 Async/Await

使用 async/await 可以使异步代码看起来更像同步代码,可以按顺序等待每个异步操作完成。(缺点无法同时发起请求)

2.使用 Promise.all

如果你不需要等待前一个请求完成才开始下一个请求,而只是想按顺序输出结果,那么可以同时开始所有的异步操作,并使用 Promise.all 来处理这些操作完成后的结果

Promise.all([
  fetch('url1').then(response => response.json()),
  fetch('url2').then(response => response.json()),
  // ...其他请求
  fetch('url5').then(response => response.json()),
]).then((responses) => {
  // responses 数组包含了所有请求按顺序的结果
  responses.forEach(response => console.log(response));
});

3.使用 Promise 链

如果你需要逐个请求,并在一个请求完成后开始下一个请求,同时要按顺序输出结果,那么你可以创建一个 Promise 链。(代码不优雅)