Generators

2017-10-31  本文已影响6人  基本密码宋

非手动的迭代器

//生成器
function* methods() {     //记住使用 function* 的意思是迭代器
    yield 'a'; //yield 进行迭代的数据
    yield 'b';
}


let method = methods();

//进行迭代
console.log(method.next())
console.log(method.next())
console.log(method.next())

结果是:

{ value: 'a', done: false }
{ value: 'b', done: false }
{ value: undefined, done: true }

另外一种方式使用

let method = function* (food) {

    for (var i = 0; i < food.length; i++) {
        yield food[i];
    }
}

let demo = method([1, 2, 3]);

console.log(demo.next());
console.log(demo.next());
console.log(demo.next());

结果是:

{ value: 1, done: false }
{ value: 2, done: false }
{ value: 3, done: false }

上一篇下一篇

猜你喜欢

热点阅读