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

修改generator

This commit is contained in:
Ruan Yifeng 2015-03-07 19:45:51 +08:00
parent efb2ef93e7
commit c4f9c6d931

View File

@ -729,7 +729,7 @@ Q.fcall(step1)
```
上面代码已经把回调函数改成了直线执行的形式。Generator函数可以进一步改善代码运行流程。
上面代码已经把回调函数,改成了直线执行的形式但是加入了大量Promise的语法。Generator函数可以进一步改善代码运行流程。
```javascript
@ -786,6 +786,22 @@ function* f(){
上面代码使用Promise的函数库Qyield语句返回的就是一个Promise对象。
多个任务按顺序一个接一个执行时yield语句可以按顺序排列。多个任务需要并列执行时比如只有A任务和B任务都执行完才能执行C任务可以采用数组的写法。
```javascript
function* parallelDownloads() {
let [text1,text2] = yield [
taskA(),
taskB()
];
console.log(text1, text2);
}
```
上面代码中yield语句的参数是一个数组成员就是两个任务taskA和taskB只有等这两个任务都完成了才会接着执行下面的语句。
### 3部署iterator接口
利用Generator函数可以在任意对象上部署iterator接口。