mirror of
https://github.com/qianguyihao/Web.git
synced 2024-11-02 14:04:44 +08:00
38 lines
912 B
Markdown
38 lines
912 B
Markdown
|
||
## async函数(异步函数)
|
||
|
||
### 概述
|
||
|
||
> async 函数是在 ES2017 引入的。
|
||
|
||
概念:真正意义上去解决异步回调的问题,同步流程表达异步操作。
|
||
|
||
本质: Generator 的语法糖。
|
||
|
||
async比之前的 Promise、Generator要好用一些。
|
||
|
||
|
||
语法:
|
||
|
||
```javascript
|
||
async function foo() {
|
||
await 异步操作;
|
||
await 异步操作;
|
||
}
|
||
```
|
||
|
||
我们在普通的函数前面加上 async 关键字,就成了 async 函数。
|
||
|
||
|
||
### async、Promise、Generator的对比(async的特点)
|
||
|
||
1、不需要像Generator去调用next方法,遇到await等待,当前的异步操作完成就往下执行。
|
||
|
||
2、async返回的总是Promise对象,可以用then方法进行下一步操作。
|
||
|
||
3、async取代Generator函数的星号*,await取代Generator的yield。
|
||
|
||
4、语意上更为明确,使用简单,经临床验证,暂时没有任何副作用。
|
||
|
||
|