js 中 async 和 await 如何使用
时间: 2023-11-23 20:55:26 浏览: 69
async和await是ES7中新增的异步编程解决方案,可以让异步代码看起来像同步代码,更易于理解和维护。使用async和await需要注意以下几点:
1. async函数必须返回一个Promise对象,否则会自动封装成一个Promise对象。
2. await只能在async函数中使用,await后面必须跟一个Promise对象,否则会自动封装成一个Promise对象。
3. await会暂停async函数的执行,等待Promise对象的状态改变,然后再继续执行async函数。
4. 如果Promise对象的状态变为rejected,await会抛出错误,需要使用try...catch捕获。
下面是一个使用async和await的例子:
```javascript
function delay(time) {
return new Promise(resolve => setTimeout(resolve, time));
}
async function asyncFunc() {
console.log('start');
await delay(1000);
console.log('after 1s');
await delay(2000);
console.log('after 2s');
return 'done';
}
asyncFunc().then(result => console.log(result));
```
上面的代码中,asyncFunc是一个async函数,里面使用了await暂停了函数的执行,等待Promise对象的状态改变。delay函数返回一个Promise对象,用于模拟异步操作。asyncFunc返回一个Promise对象,可以使用then方法获取异步操作的结果。
阅读全文