mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-24 18:32:22 +00:00
修改generator
This commit is contained in:
parent
efb2ef93e7
commit
c4f9c6d931
@ -729,7 +729,7 @@ Q.fcall(step1)
|
||||
|
||||
```
|
||||
|
||||
上面代码已经把回调函数,改成了直线执行的形式。Generator函数可以进一步改善代码运行流程。
|
||||
上面代码已经把回调函数,改成了直线执行的形式,但是加入了大量Promise的语法。Generator函数可以进一步改善代码运行流程。
|
||||
|
||||
```javascript
|
||||
|
||||
@ -786,6 +786,22 @@ function* f(){
|
||||
|
||||
上面代码使用Promise的函数库Q,yield语句返回的就是一个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接口。
|
||||
|
Loading…
x
Reference in New Issue
Block a user