在 JavaScript 中,等待两个或多个接口调用完成,可以通过 Promise.all() 来实现。
Promise.all() 方法会接收一个包含多个 Promise 的数组,并返回一个新的 Promise。当所有的 Promise 都成功时,返回的 Promise 将解析为一个包含每个 Promise 结果的数组;如果有任何一个 Promise 失败,则返回的 Promise 将拒绝。
// 模拟接口调用1
function fetchData1() {
return new Promise((resolve) => {
setTimeout(() => {
resolve("数据1已获取");
}, 1000); // 模拟1秒后返回
});
}
// 模拟接口调用2
function fetchData2() {
return new Promise((resolve) => {
setTimeout(() => {
resolve("数据2已获取");
}, 2000); // 模拟2秒后返回
});
}
// 使用 Promise.all 来等待两个接口同时完成
Promise.all([fetchData1(), fetchData2()])
.then((results) => {
console.log("两个接口都已完成:");
console.log(results[0]); // 输出:数据1已获取
console.log(results[1]); // 输出:数据2已获取
})
.catch((error) => {
console.log("某个接口调用失败:", error);
});