MST

星途 面试题库

面试题:JavaScript中async/await错误处理与并发控制

假设有三个异步任务,每个任务都用async函数表示,任务1、任务2可能会失败(可以通过抛出错误模拟),任务3依赖于任务1和任务2的成功结果。请使用async/await实现这三个任务的执行,要求正确处理任务1和任务2的错误,并且在任务1和任务2成功时并发执行它们,最后将任务1和任务2的结果作为参数传递给任务3并执行任务3。
38.0万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
async function task1() {
    // 模拟可能失败
    if (Math.random() > 0.5) {
        throw new Error('任务1失败');
    }
    return '任务1结果';
}

async function task2() {
    // 模拟可能失败
    if (Math.random() > 0.5) {
        throw new Error('任务2失败');
    }
    return '任务2结果';
}

async function task3(result1, result2) {
    return `任务3使用结果: ${result1} 和 ${result2}`;
}

async function main() {
    try {
        const [result1, result2] = await Promise.all([task1(), task2()]);
        const finalResult = await task3(result1, result2);
        console.log(finalResult);
    } catch (error) {
        console.error('发生错误:', error.message);
    }
}

main();