ES6 Generator函数

Generator函数是es6提供的解决异步编程的方案之一;
Generator函数是一个状态机,内部封装了不同状态的数据;

<script type="text/javascript">
    // generator定义 function后面跟个*号
    function* myGenerator(){
        console.log(‘业务逻辑A‘)
        let result=yield ‘hello‘
        console.log(result)
        console.log(‘业务逻辑B‘)
        yield ‘world‘
        console.log(‘执行完了‘)
    }

    let mg=myGenerator();
    console.log(mg.next())
    console.log(mg.next(‘hehe‘))
    console.log(mg.next())

</script>

每次执行一次next() 指针想下偏移一次,根据yield来作用;

console.log(mg.next())

console.log(mg.next())

console.log(mg.next())

next()返回结果

  对应的yield值,然后done的话,只有后面还有yield,就是false;遍历完了,就是true;

  yield返回值,默认是undefined

假如需要值的话,我们next()方法里传值即可;

原文地址:https://www.cnblogs.com/jnba/p/12221921.html

时间: 2024-10-10 00:15:13

ES6 Generator函数的相关文章

es6 generator 函数中的yield理解

es6 generator 的yield理解 原文地址:https://www.cnblogs.com/malong1992/p/12129561.html

ES6生成器函数generator

generator是ES6新增的一个特殊函数,通过 function* 声明,函数体内通过 yield 来指明函数的暂停点,该函数返回一个迭代器,并且函数执行到 yield语句前面暂停,之后通过调用返回的迭代器next()方法来执行yield语句.如下代码演示: function* generator() { yield 1; yield 2; yield 3; } var gen = generator(); 如上代码:generator函数的调用方法与普通函数一样,也是在函数名后面加上一对圆

ES6的Generator函数

1.简介 Generator函数是一个函数的内部状态的遍历器(也就是说,Generator函数是一个状态机). 形式上,Generator函数是一个普通函数,但是有两个特征. function命令与函数名之间有一个星号*: 函数体内部使用yield语句,定义遍历器的每个成员,即不同的内部状态. function* helloWorldGenerator() { yield 'hello'; yield 'world'; return 'ending'; } let hw = helloWorld

es6 中的generator函数控制流程

Generator函数跟普通函数的写法有非常大的区别: 一是,function关键字与函数名之间有一个星号: 二是,函数体内部使用yield语句,定义不同的内部状态(yield在英语里的意思就是"产出"). 最简单的Generator函数如下: function* g() { yield 'a'; yield 'b'; yield 'c'; return 'ending'; } g(); // 返回一个对象 g函数呢,有四个阶段,分别是'a','b','c','ending'. Gen

ES6基础知识(Generator 函数应用)

1.Ajax 是典型的异步操作,通过 Generator 函数部署 Ajax 操作,可以用同步的方式表达 function* main() { var result = yield request("http://some.url"); var resp = JSON.parse(result); console.log(resp.value); } function request(url) { makeAjaxCall(url, function(response){ it.nex

js-ES6学习笔记-Generator函数的异步应用

1.ES6 诞生以前,异步编程的方法,大概有下面四种. 回调函数 事件监听 发布/订阅 Promise 对象 Generator 函数将 JavaScript 异步编程带入了一个全新的阶段. 2.所谓"异步",简单说就是一个任务不是连续完成的,可以理解成该任务被人为分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头执行第二段. 3.JavaScript 语言对异步编程的实现,就是回调函数.所谓回调函数,就是把任务的第二段单独写在一个函数里面,等到重新执行这个任务的时候

js-ES6学习笔记-Generator函数的应用

1.异步操作的同步化表达 Generator函数的暂停执行的效果,意味着可以把异步操作写在yield语句里面,等到调用next方法时再往后执行.这实际上等同于不需要写回调函数了,因为异步操作的后续操作可以放在yield语句下面,反正要等到调用next方法时再执行.所以,Generator函数的一个重要实际意义就是用来处理异步操作,改写回调函数. function* loadUI() { showLoadingScreen(); yield loadUIDataAsynchronously();

generator函数学习笔记

一.基本概念 Generator函数是一种可以暂停执行,返回iterator对象的函数,yield是暂停标识 function* gen(){ yield 1; yield 2; } Generator函数在function后面有一个*,内部有yield语句 function* gen(){ yield 1; yield 2; return '1' } let g = gen(); //调用Generator函数返回遍历器对象 console.log(g.next())//{"value&quo

js-ES6学习笔记-Generator函数

1.Generator 函数是 ES6 提供的一种异步编程解决方案.形式上,Generator 函数是一个普通函数,但是有两个特征.一是,function关键字与函数名之间有一个星号:二是,函数体内部使用yield语句,定义不同的内部状态. 2.Generator函数的调用方法与普通函数一样,也是在函数名后面加上一对圆括号.不同的是,调用Generator函数后,该函数并不执行,返回的也不是函数运行结果,而是一个指向内部状态的指针对象,也就是上一章介绍的遍历器对象(Iterator Object