美文网首页
ES6中generator传参与返回值

ES6中generator传参与返回值

作者: walkerwzy | 来源:发表于2016-04-05 18:33 被阅读459次

先看两个例子,

1,

function* f() {
  for(var i=0; true; i++) {
    var reset = yield i;
    if(reset) { i = -1; }
  }
}

var g = f();

document.write(g.next().value) // { value: 0, done: false }
document.write(g.next().value) // { value: 1, done: false }
document.write(g.next(true).value) // { value: 0, done: false }

2,

function* gen(x){
  try {
    var y = yield x + 2;
  } catch (e){ 
    document.write(e);
  }
  return y;
}

var g = gen(1);
g.next();
g.throw('出错了');

有什么区别?
第一个里传入了一个true参数, 第二个里传入了一个1参数, 目的都是期望传递给generator.
但例一演示的参数, 传过去是传给了yield语句本身的返回值, 即reset, 也就是说, 如果你没有传参, 每一次next方法, reset获取的结果都是undefined
例二中, 方法本身就有入参, 所以千万不要搞错了, 这种入参等于是一个种子, 所以只需要在实例化这个生成器的时候才需要传.

区别就在是在生成器里传, 还是在生成器的next方法里传. 前者是给生成器赋种子值, 后者是给每个yield赋返回值

相关文章

  • ES6中generator传参与返回值

    先看两个例子, 1, 2, 有什么区别?第一个里传入了一个true参数, 第二个里传入了一个1参数, 目的都是期望...

  • 10.3 Generator

    10.3 Generator问题一:你理解的 Generator 是什么? Generator算是 ES6 中难理...

  • Generator 函数

    Generator Generator 函数是 es6 中的新的异步编程解决方案,本节仅讨论 Generator ...

  • H5学习

    对ES6Generator函数的理解 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传...

  • 哈罗出行面试

    1. es6中generator generator是es6的异步编程解决方案简单应用如下: 用处用一下几点: 异...

  • 20.ES6中Generator生成器

    Generator是ES6的生成器1、Generator 函数是 ES6 提供的一种异步编程解决方案,在函数中可以...

  • Generator函数实现斐波那契数列

    ES6 中 generator生成器函数 特点: 调用generator函数返回一个迭代器(iterator)对象...

  • 关于es6新属性yield

    关于es6新属性yield yield是Generator函数中中断函数返回的一个属性。Generator函数即一...

  • 03-JavaScript-Generator异步编程

    Generator 概念 Generator 函数是 ES6 提供的一种异步编程解决方案 Generator 函数...

  • co库的简易实现

    generator Generator 函数是 ES6 提供的一种异步编程解决方案。 执行generator函数会...

网友评论

      本文标题:ES6中generator传参与返回值

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