ES6 生成器函数

一、生成器函数其实就是一个特殊的函数,实习异步编程

javascript 复制代码
function * gen() {
    console.log(111);
    yield '一只没有耳朵';
    console.log(222);
    yield '一只没有尾巴';
    console.log(3333);
    yield '真奇怪';
}

let iterator = gen();
iterator.next();  //执行的是函数开始 ------ yield '一只没有耳朵'中间的部分
iterator.next();  //执行的是yield '一只没有耳朵' ------  yield '一只没有尾巴'中间的部分

// 遍历
for (let v of gen()) {
    console.log(v);   // v是yield后面的部分
}

二、生成器函数的传参

javascript 复制代码
function * gen(arg) {
    console.log(arg);   // AAA
    let one = yield 111;
    console.log(one);   // BBB
    let two = yield 222;
    console.log(two);   // CCC
}

let iterator = gen('AAA');
iterator.next('BBB');
iterator.next('CCC');
相关推荐
晴天161 天前
ES6+ 核心语法
前端·es6·状态模式
变与不变8062 天前
JS作用域,作用域链
前端·javascript·es6
EthanChou20208 天前
AES67协议笔记
前端·笔记·es6
CappuccinoRose14 天前
ES6+ 核心语法糖
前端·es6·解构·可选链·空值合并
小白勇闯网安圈15 天前
Vue 工程化开发:组件复用、插槽、项目结构与 ES6 模块化
javascript·vue.js·es6
Brown.alexis21 天前
es6知识点4-自备使用
前端·javascript·es6
Brown.alexis22 天前
es6知识点5-自备使用
前端·javascript·es6
Brown.alexis24 天前
es6知识点1-自备使用
前端·ecmascript·es6
Brown.alexis24 天前
es6知识点3-自备使用
前端·javascript·es6
代码不加糖1 个月前
common.js和es6中模块引l入的区别?
前端·javascript·es6