面试题答案
一键面试async function runTasks() {
const tasks = [
async () => {
// 模拟异步任务1
await new Promise((resolve) => setTimeout(resolve, 1000));
return '任务1完成';
},
async () => {
// 模拟异步任务2
await new Promise((resolve) => setTimeout(resolve, 1500));
return '任务2完成';
},
async () => {
// 模拟异步任务3,抛出错误
await new Promise((_, reject) => setTimeout(() => reject(new Error('任务3出错')), 2000));
}
];
try {
const results = await Promise.all(tasks.map(task => task()));
console.log('所有任务完成:', results);
} catch (error) {
console.error('其中一个任务出错:', error.message);
}
}
runTasks();
上述代码中:
- 定义了一个
tasks
数组,每个元素是一个异步函数,模拟不同的异步任务。 - 使用
Promise.all
方法并发执行这些异步任务,map
方法将每个异步任务函数进行调用。 - 在
try...catch
块中捕获可能出现的错误。如果所有任务成功完成,会在try
块中打印所有任务的结果;如果其中一个任务出错,会在catch
块中打印错误信息。