async和await用法
时间: 2023-10-13 14:23:15 浏览: 146
async和await是ES2017中引入的关键字,用于编写异步代码。在JavaScript中,异步操作是非常常见的,例如网络请求、文件读写、定时器等等。使用异步操作可以避免程序在等待IO操作时被阻塞。
async和await的基本用法如下:
1. async关键字用于定义一个返回Promise对象的异步函数。
```javascript
async function foo() {
return Promise.resolve('Hello World');
}
```
2. await关键字用于等待一个Promise对象解决(resolve)并返回其结果。
```javascript
async function foo() {
const result = await Promise.resolve('Hello World');
console.log(result); // 输出 "Hello World"
}
```
3. await只能在async函数中使用,如果在普通函数中使用会导致语法错误。
```javascript
function bar() {
const result = await Promise.resolve('Hello World'); // SyntaxError: await is only valid in async function
}
```
4. await会暂停async函数的执行,直到等待的Promise解决。
```javascript
async function foo() {
console.log('Start');
const result = await new Promise(resolve => setTimeout(() => resolve('Hello World'), 1000));
console.log(result);
console.log('End');
}
foo(); // 输出 "Start" -> 等待1秒钟 -> 输出 "Hello World" -> 输出 "End"
```
5. 如果等待的Promise被拒绝(reject),则会抛出一个错误,可以使用try...catch语句捕获。
```javascript
async function foo() {
try {
const result = await Promise.reject('Something went wrong!');
} catch (error) {
console.log(error); // 输出 "Something went wrong!"
}
}
```
阅读全文