async和await是什么
时间: 2024-07-10 13:00:19 浏览: 127
`async` 和 `await` 是 JavaScript 中用于处理异步操作的关键特性,它们一起构成了 Promise 风格的异步编程模型。在 ES6(ECMAScript 2015)中引入了这两个关键字。
1. **async**:这是一个声明函数为异步的修饰符。当一个函数前加上 `async`,它会返回一个Promise,表示该函数的执行结果可能会异步返回。这意味着函数内部的代码可以使用 `await` 关键字暂停并等待 Promise 解决。
2. **await**:这个关键字用于异步函数内部,它可以放在一个 `async` 函数的语句后,暂停当前的异步代码执行,直到被等待的 Promise 对象解析(resolve)或拒绝(reject)。一旦Promise解析,`await` 后面的表达式会返回解析值,如果Promise被拒绝,则会抛出异常。
例子:
```javascript
async function getData() {
try {
const response = await fetch('https://api.example.com/data');
if (!response.ok) {
throw new Error('Failed to fetch data');
}
const data = await response.json();
return data;
} catch (error) {
console.error(error);
return null;
}
}
getData().then(data => console.log(data));
```
阅读全文