async/await
时间: 2023-09-20 08:10:34 浏览: 96
async/await 是一种异步编程模型,它是基于 Promise 的语法糖。async/await 让异步代码看起来更像同步代码,使得代码更加易读、易写,并且能够避免回调地狱。
async/await 的核心是 async 函数。async 函数在定义时使用 async 关键字进行修饰,它返回一个 Promise 对象。在 async 函数中,可以使用 await 关键字来等待一个 Promise 对象的结果返回,await 关键字只能在 async 函数中使用。
当我们使用 await 关键字等待一个 Promise 对象时,如果 Promise 对象的状态是已完成(fulfilled),那么 await 表达式的结果就是 Promise 对象的 resolved 值;如果 Promise 对象的状态是已拒绝(rejected),那么 await 表达式会抛出一个错误,我们可以使用 try-catch 语句来处理这个错误。
下面是一个使用 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 关键字等待一个 Promise 对象的结果。在 try 块中,我们使用 await 关键字等待 fetch 函数返回的 Promise 对象,以获取响应对象。然后,我们再次使用 await 关键字等待 response.json() 方法返回的 Promise 对象,以获取响应数据。最后,我们将响应数据输出到控制台中。如果任何一个 Promise 对象被拒绝,catch 块会捕获这个错误,并输出到控制台中。
阅读全文