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、语意上更为明确,使用简单,经临床验证,暂时没有任何副作用。
|
|||
|
|
|||
|
|