async+await
时间: 2023-10-26 07:07:11 浏览: 103
async/await是一种异步编程的方式,它可以让我们更方便地编写异步代码,避免了回调地狱的问题。async/await是ES2017引入的新特性,它基于Promise实现。
async函数是一个返回Promise对象的函数,可以使用await关键字来等待Promise对象的状态变化。当我们在async函数中使用await关键字等待一个Promise对象时,代码会暂停执行,直到Promise对象的状态变为resolved或rejected。如果Promise对象的状态变为resolved,await表达式会返回Promise对象的resolve值;如果Promise对象的状态变为rejected,await表达式会抛出Promise对象的reject值。
async/await的优点在于它可以让异步代码看起来像同步代码,使得代码更易读、易懂。同时,它也可以避免回调地狱的问题,使得代码结构更加清晰。
下面是一个使用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对象。如果fetch函数返回的Promise对象状态变为resolved,fetchData函数会继续执行,并使用await关键字等待response.json()方法返回的Promise对象。如果response.json()方法返回的Promise对象状态变为resolved,fetchData函数会继续执行,并将解析后的数据打印到控制台上。如果任何一个Promise对象的状态变为rejected,fetchData函数会抛出错误并打印到控制台上。
阅读全文