Skip to content

Commit d40553a

Browse files
committed
feat: 2020.07.22
1 parent 8da3b93 commit d40553a

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

Cute-JavaScript/Cute-ES/3.ES8.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,22 @@ const asyncReadFile = async function () {
4848
```
4949
**对比Genenrator有四个优点:**
5050
* (1)内置执行器
51+
5152
Generator函数执行需要有执行器,而`async`函数自带执行器,即`async`函数与普通函数一模一样:
5253
```js
5354
async f();
5455
```
56+
5557
* (2)更好的语义
56-
`async``await`,比起`星号``yield`,语义更清楚了。`async`表示函数里有异步操作,`await`表示紧跟在后面的表达式需要等待结果。
58+
59+
`async``await`,比起`星号``yield`,语义更清楚了。`async`表示函数里有异步操作,`await`表示紧跟在后面的表达式需要等待结果。
60+
5761
* (3)更广的适用性
62+
5863
`yield`命令后面只能是 Thunk 函数或 Promise 对象,而`async`函数的`await`命令后面,可以是 Promise 对象和原始类型的值(数值、字符串和布尔值,但这时等同于同步操作)。
64+
5965
* (4)返回值是Promise
66+
6067
`async`函数的返回值是 Promise 对象,这比 Generator 函数的返回值是 Iterator 对象方便多了。你可以用`then`方法指定下一步的操作。
6168

6269
进一步说,`async`函数完全可以看作多个异步操作,包装成的一个 Promise 对象,而`await`命令就是内部`then`命令的语法糖。

0 commit comments

Comments
 (0)