谈谈Promise的then链与async/await方法的异同之处
warning:
这篇文章距离上次修改已过204天,其中的内容可能已经有所变动。
Promise的then
链和async/await
都用于处理异步操作,但它们有不同的用法和异常处理方式。
相同点:
- 两者都可以用来编写异步代码。
- 两者都可以使用
try/catch
来捕获异步代码中的错误。
不同点:
then
链是基于回调的,而async/await
是基于Promise的语法糖,使得异步代码看起来更像同步代码。then
链中的连续调用会导致回调地狱,而async/await
可以使代码更易于阅读和维护。async/await
可以直接使用try/catch
来捕获异常,而then
链中需要使用catch
方法。async/await
自动执行微任务,而then
链将微任务推迟到下一个宏任务执行。
示例代码:
使用then
链:
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => {
// 处理数据
console.log(data);
})
.catch(error => {
// 处理错误
console.error('Error:', error);
});
使用async/await
:
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
// 处理数据
console.log(data);
} catch (error) {
// 处理错误
console.error('Error:', error);
}
}
fetchData();
评论已关闭