美文网首页
js中yield

js中yield

作者: 谁在烽烟彼岸 | 来源:发表于2018-12-28 15:45 被阅读0次

在ES6中新增关键字yield,官方介绍如下

The yield keyword is used to pause and resume a generator function.
// yield这个关键字是用来暂停和恢复一个遍历器函数(的运行)的。

yield是命令型关键字

[rv] = yield [*][expression];

生成器(Generator)

生成器是ES6引入的新的函数形式, 可以在执行当中暂停自身,可以恢复执行,并不像普通函数那样保证运行到完毕。

function *foo(){..}

生成器并不会立即执行,需要调用它的next(..)方法才会执行,调用return()方法则会终止生成器的运行

yield在生成器中的应用

1.普通用法

yield用来标示暂停点,也可放在循环中,用来表示一个重复暂停点。
且在暂停时,会生成一个值,在调用nex(..)时,yield也会接收next传入的参数

2.yield*

*使得yield成为了yield * ,称之为yield委托(yield delegation)。yield * .. 需要一个iterable;然后它会调用这个迭代器,把自己的生成器控制权委托给这个迭代器,直到其耗尽。

function *gen(){
     yield 1;
     yield 2;
     yield 3;
}
function *gen(){
     yield *[1,2,3];
}
function *bar(){
      yield *gen();
}

以上效果是相同的

相关文章

  • js中yield

    在ES6中新增关键字yield,官方介绍如下 The yield keyword is used to pause...

  • js异步编程(updating)

    js 异步编程方式: Promise,generator/yield,async/await 回掉函数 js事件监...

  • 8-2、带逻辑的 generrator

    cnpm i yield-runner-blue,把 index.js 文件中的函数赋值出来,引入不能用箭头函数,加 *

  • 深入理解js中的yield

    yield是什么 yield是ES6的新关键字,使生成器函数执行暂停,yield关键字后面的表达式的值返回给生成器...

  • # 深入理解js中的yield

    yield是什么 yield是ES6的新关键字,使生成器函数执行暂停,yield关键字后面的表达式的值返回给生成器...

  • pytest-fixture中的yield及autouse

    记录一下fixture中关于yield以及autouse参数的两个小细节。 yield yield在fixture...

  • Python yield关键字

    Python中yield关键字解释 这篇文章关于python的yield关键字。并且文章中会解释什么是yield,...

  • python 生成器和协程

    yield 对于python生成器中的yield来说,yield item会产出一个值,提供给next()的调用方...

  • koa 和 ES6

    构造器的写法 yield的作用yield类似return,但是在一般函数中,return只能一次。但是yield在...

  • yield的作用理解

    Python中的yield和java中的不同,java中的yield是妥协的意味,让出cpu给其他线程执行,但不保...

网友评论

      本文标题:js中yield

      本文链接:https://www.haomeiwen.com/subject/jqnslqtx.html