MST

星途 面试题库

面试题:JavaScript 中 Promise 在网络请求应用里如何处理并发请求

假设你需要同时发起多个网络请求(比如获取用户信息、用户订单列表、用户收藏列表),并且当所有请求都完成后执行下一步操作,使用 Promise 该如何实现?请写出具体代码。
50.0万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
// 模拟获取用户信息的异步操作
function getUserInfo() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('用户信息');
        }, 1000);
    });
}

// 模拟获取用户订单列表的异步操作
function getUserOrders() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('用户订单列表');
        }, 1500);
    });
}

// 模拟获取用户收藏列表的异步操作
function getUserFavorites() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('用户收藏列表');
        }, 2000);
    });
}

Promise.all([getUserInfo(), getUserOrders(), getUserFavorites()])
   .then(([userInfo, userOrders, userFavorites]) => {
        console.log('所有请求完成,下一步操作:', userInfo, userOrders, userFavorites);
    })
   .catch(error => {
        console.error('有请求失败:', error);
    });