异步/等待(async/await)是一种现代JavaScript编程模式,用于处理异步操作,如网络请求、定时器或其他可能需要等待的操作。这种模式使得异步代码的编写和阅读更加直观和简洁。
async
关键字声明的函数。await
关键字。async
函数内部使用。async
函数的执行,等待Promise对象的解决(resolve)或拒绝(reject)。await
表达式的结果就是Promise的解决值;如果Promise被拒绝,await
会抛出一个错误。// 定义一个返回Promise的异步函数
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Data fetched successfully');
}, 2000);
});
}
// 使用async/await处理异步操作
async function getData() {
try {
const result = await fetchData();
console.log(result); // 输出: Data fetched successfully
} catch (error) {
console.error('Error:', error);
}
}
getData();
async/await
可以使异步代码看起来更像同步代码,减少回调地狱(callback hell)的问题。try/catch
块来捕获和处理异步操作中的错误。.then()
和.catch()
链,使代码更加简洁。.then()
和.catch()
进行处理。fetch
或第三方库(如axios)进行HTTP请求时。setTimeout
或setInterval
进行延迟操作。async
关键字:await
,会导致语法错误。await
的函数声明为async
。try/catch
捕获错误可能导致程序崩溃。async
函数中使用try/catch
块来处理潜在的错误。await
可能导致不必要的延迟,影响性能。Promise.all()
等方法优化并发。通过理解和正确应用async/await
,可以显著提高JavaScript代码的可维护性和效率。
领取专属 10元无门槛券
手把手带您无忧上云