使用async/await
实现
async function runAsyncFunctions() {
try {
const result1 = await asyncFunction1();
const result2 = await asyncFunction2(result1);
const result3 = await asyncFunction3(result2);
return result3;
} catch (error) {
console.error('发生错误:', error);
}
}
使用Promise
实现
function runAsyncFunctionsWithPromise() {
return asyncFunction1()
.then(result1 => asyncFunction2(result1))
.then(result2 => asyncFunction3(result2))
.catch(error => {
console.error('发生错误:', error);
});
}
async/await
相较于单纯使用Promise
的优势
- 代码可读性更高:
async/await
语法糖使得异步代码看起来更像同步代码,顺序执行的逻辑一目了然,而Promise
链式调用在多个异步操作时,链式会变得冗长且嵌套复杂,可读性下降。
- 错误处理更简洁:在
async/await
中,使用try...catch
块可以统一捕获整个异步操作过程中的错误,相比Promise
链式调用中每个then
后都要跟catch
或者在最后统一写catch
,async/await
的错误处理方式更符合传统同步代码的错误处理习惯,更直观。