Generator函数

定义

Generator 函数就是一个封装的异步任务,或者说是异步任务的容器。异步操作需要暂停的地方,都用 yield 语句注明。

特点

可以交出函数的执行权(即暂停执行)。

使用

    1. 每次调用,函数本身不清楚要返回的值,而是根据内部指针(即yield语句)来指定,它是分段执行的;    
    2. yield可以理解为函数的暂停标志,直到调用函数的next()方法,它才会继续执行;
    3. 每次调用,返回一个遍历器对象,分别为:value: 返回的值;done: 是否调用结束;

示例


function* helloWordGenerator() {
yield "hello";
yield "word";
return "ending"

}

let helloWorld = helloWordGenerator();

console.log(helloWorld.next()); // 第一次调用: { value: 'hello', done: false }
console.log(helloWorld.next()); // 第二次调用: { value: 'hello', done: false }
console.log(helloWorld.next()); // 第三次调用: { value: 'ending', done: true }
















posted @ 2018-01-06 15:11  minimissile  阅读(139)  评论(0编辑  收藏  举报