前端小白成长之07--for of 迭代器Iterator 生成器Generator

113 阅读1分钟

以前一直用forEach (不能终止循环),some every for in 等,现在出来for of,挺好用break终止循环

可以编辑map,For of可以迭代的都是原型上有iterator方法

done表示迭代是否结束

实现对象的可迭代Iterable

迭代器列子

Generator 生成器

  • 避免异步编程中回调嵌套过深

  • function关键字与函数名之间有一个号。

  • 函数体内部使用yield表达式,定义不同的内部状态(yield在英语里的意思就是“产出”)

  • 执行Generator函数生成一个遍历器对象,用该对象调用其next()方法来遍历函数内部的状态

function* generator(txt) {
    console.log(txt); // 2 第一次调用生成迭代对象,传参
    let result01 = yield '停止';
    console.log(result01); // 4 传参替换yield;
}
let g = generator('第一次调用生成迭代对象,传参');

console.log('主线程'); // 1

let step01 = g.next();

console.log(step01.value);// 3 停止

g.next('传参替换yield');

console.log('结束~'); // 5