async、await详解
时间: 2023-11-11 12:59:33 浏览: 75
async/await 是 ES2017 中新增的语法,用于简化异步操作的编写和处理。async/await 基于 Promise 实现,可以看作是 Promise 的语法糖。
async 函数是异步函数的一种声明方式,它会返回一个 Promise 对象。在 async 函数内部,可以使用 await 关键字等待一个 Promise 对象的状态变更。当 await 后面的 Promise 对象状态变为 resolved 时,await 表达式会返回 Promise 对象的 resolve 值;当 Promise 对象状态变为 rejected 时,await 表达式会抛出 Promise 对象的 reject 值。
下面是一个使用 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);
}
}
```
在上面的代码中,fetchData 函数使用 async 关键字声明为异步函数。在函数内部,使用 await 关键字等待 fetch 函数返回的 Promise 对象。当 Promise 对象状态变为 resolved 时,await 表达式会返回 response.json() 方法返回的 Promise 对象;当 Promise 对象状态变为 rejected 时,await 表达式会抛出错误并被 catch 语句捕获。
阅读全文