通常情况下,我们可以使用Promise.all()或者async/await语法来解决这个问题,确保请求能够并发执行。
代码示例:
// 使用Promise.all() async function fetchData() { const data1 = fetch('/api/data1'); const data2 = fetch('/api/data2'); const results = await Promise.all([data1, data2]); console.log(results); }
// 使用async/await async function fetchData() { const data1 = fetch('/api/data1'); const data2 = fetch('/api/data2'); const result1 = await data1; const result2 = await data2; console.log(result1, result2); }
当使用Promise.all()时,所有请求都会被同时发送,并在所有请求都完成后返回一个数组。但是,如果其中一个请求失败,Promise.all()会返回一个Rejected状态的promise。
当使用async/await时,每个请求都是顺序发生的,所以第二个请求会等待第一个请求完成后才会发出,但是如果其中一个请求失败,第二个请求仍然会发出,并返回一个Rejected状态的promise。