async await用法
时间: 2023-09-28 17:07:46 浏览: 92
async/await 是 ES6 中的新特性之一,它提供了一种更加简单和直观的方式来编写异步代码。它基于 Promise,但是比 Promise 更容易使用和理解。
async/await 的用法如下:
1. async function 声明一个异步函数,函数内部可以使用 await 关键字来等待一个 Promise 对象的完成。
例如:
```
async function fetchData() {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
}
```
2. await 关键字用于等待一个 Promise 对象的完成,await 必须在 async 函数内部使用。
例如:
```
async function fetchData() {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
}
```
3. async/await 可以与 Promise 链式调用一起使用,可以使用 try/catch 捕获 Promise 中的错误。
例如:
```
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
} catch (error) {
console.log(error);
}
}
```
4. async/await 可以与 Promise.all() 一起使用,以同时处理多个 Promise。
例如:
```
async function fetchData() {
const [data1, data2] = await Promise.all([
fetch('https://api.example.com/data1').then((res) => res.json()),
fetch('https://api.example.com/data2').then((res) => res.json()),
]);
return [data1, data2];
}
```
5. async/await 可以与 Promise.race() 一起使用,以处理最先完成的 Promise。
例如:
```
async function fetchData() {
const data = await Promise.race([
fetch('https://api.example.com/data1').then((res) => res.json()),
fetch('https://api.example.com/data2').then((res) => res.json()),
]);
return data;
}
```
总之,async/await 提供了一种更加直观和易于理解的方式来编写异步代码,可以让开发者更加容易地处理异步操作。
阅读全文