async/await 是 JavaScript 中用于处理异步操作的一种语法糖。它们使得异步代码的编写和阅读更加简洁和直观。
具体来说,async 函数是一个返回 Promise 对象的函数,可以在函数内部使用 await 关键字来等待 Promise 对象的解析。await 关键字会暂停函数的执行,直到 Promise 对象解析完成并返回结果。
下面是一个简单的示例,展示了 async/await 的用法:
javascript
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function fetchData() {
console.log('开始获取数据');
await delay(2000); // 等待2秒钟
console.log('数据获取完成');
return 'Data';
}
async function main() {
console.log('开始执行主函数');
const data = await fetchData(); // 等待 fetchData 函数执行完成并返回结果
console.log('获得数据:', data);
}
main();
在上述示例中,fetchData
函数是一个异步函数,它使用 await
关键字等待 delay
函数的 Promise 对象解析完成。当 await
表达式执行时,函数的执行会暂停,直到 Promise 对象状态变为 resolved(或者 rejected)后再继续执行。
在 main
函数中,我们使用 await
等待 fetchData
函数执行完成,并获取其返回结果。
使用 async/await
可以有效地处理回调地狱(callback hell)问题,使异步代码更加易读、易写和维护。