async function asyncFunction1() {
// 模拟异步操作,这里简单返回一个值,实际可能是数据库查询等操作
return 'Result of asyncFunction1';
}
async function asyncFunction2() {
// 模拟异步操作
return 'Result of asyncFunction2';
}
async function asyncFunction3() {
// 模拟异步操作
return 'Result of asyncFunction3';
}
async function main() {
try {
const result1 = await asyncFunction1();
const [result2, result3] = await Promise.all([asyncFunction2(), asyncFunction3()]);
const allResults = [result1, result2, result3];
console.log('汇总结果:', allResults);
// 在这里对汇总结果进行进一步处理
} catch (error) {
console.error('asyncFunction1 抛出的错误:', error);
// 这里可以进行错误处理,比如记录日志、返回特定错误信息给客户端等
}
}
main();
- 代码逻辑解释:
asyncFunction1
、asyncFunction2
和 asyncFunction3
是三个模拟的异步函数。
- 在
main
函数中,首先使用 await
等待 asyncFunction1
执行完毕。如果 asyncFunction1
抛出错误,会直接进入 catch
块。
- 当
asyncFunction1
成功执行后,使用 Promise.all
并发执行 asyncFunction2
和 asyncFunction3
,并等待它们都完成,将结果解构赋值给 result2
和 result3
。
- 然后将三个函数的结果汇总到
allResults
数组中,可以在后续对其进行进一步处理。
- 错误处理:
- 使用
try...catch
块来捕获 asyncFunction1
抛出的错误。如果 asyncFunction1
抛出错误,await
表达式会暂停执行,并将控制权转移到 catch
块。在 catch
块中,可以记录错误日志、返回特定的错误信息给客户端等,以此优雅地处理错误。