1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-24 18:32:22 +00:00

docs(generator-async): edit co module

This commit is contained in:
ruanyf 2017-02-16 16:52:56 +08:00
parent 2da8eac664
commit 08e0824e21

View File

@ -420,7 +420,7 @@ ft(1, 2)(print);
### Generator 函数的流程管理
你可能会问, Thunk函数有什么用回答是以前确实没什么用但是 ES6 有了 Generator 函数Thunk 函数现在可以用于 Generator 函数的自动流程管理。
你可能会问, Thunk 函数有什么用?回答是以前确实没什么用,但是 ES6 有了 Generator 函数Thunk 函数现在可以用于 Generator 函数的自动流程管理。
Generator 函数可以自动执行。
@ -544,9 +544,9 @@ var co = require('co');
co(gen);
```
上面代码中Generator函数只要传入co函数就会自动执行。
上面代码中Generator函数只要传入`co`函数,就会自动执行。
co函数返回一个Promise对象因此可以用then方法添加回调函数。
`co`函数返回一个Promise对象因此可以用`then`方法添加回调函数。
```javascript
co(gen).then(function (){
@ -554,9 +554,9 @@ co(gen).then(function (){
});
```
上面代码中等到Generator函数执行结束就会输出一行提示。
上面代码中,等到 Generator 函数执行结束,就会输出一行提示。
### co模块的原理
### co 模块的原理
为什么 co 可以自动执行 Generator 函数?
@ -568,7 +568,7 @@ co(gen).then(function (){
2Promise 对象。将异步操作包装成 Promise 对象,用`then`方法交回执行权。
co 模块其实就是将两种自动执行器Thunk 函数和 Promise 对象),包装成一个模块。使用 co 的前提条件是Generator 函数的`yield`命令后面,只能是 Thunk 函数或 Promise 对象。
co 模块其实就是将两种自动执行器Thunk 函数和 Promise 对象),包装成一个模块。使用 co 的前提条件是Generator 函数的`yield`命令后面,只能是 Thunk 函数或 Promise 对象。如果数组或对象的成员,全部都是 Promise 对象也是可以的详见后文的例子。4.0 版以后,`yield`命令后面只能是 Promise 对象。)
上一节已经介绍了基于 Thunk 函数的自动执行器。下面来看,基于 Promise 对象的自动执行器。这是理解 co 模块必须的。