Generator

2017-08-26  本文已影响0人  萧沪椿Helson

generator(生成器)是ES6标准引入的新的数据类型。一个generator看上去像一个函数,但可以返回多次。

和 Python 中的生成器一样,所以算是一次复习。不过由于至今还没有运用过生成器,还不算真正掌握。

用生成器写一个计数器

function* create_counter(max) {
    var id = 0;
    while (id < max) yield id++;
}

a = create_counter(5) // create_counter {[[GeneratorStatus]]: "suspended"}
a.next() // {value: 0, done: false}
a.next() // {value: 1, done: false}
a.next() // {value: 2, done: false}
...
a.next() // {value: 4, done: true}

我们也可以利用 for of 语句来循环调用这个函数

for (var i of create_counter(5)) {
    console.log(i);
}

//0
//1
//2
//3
//4
上一篇下一篇

猜你喜欢

热点阅读