美文网首页
理解geneartor

理解geneartor

作者: 玄月府的小妖在debug | 来源:发表于2017-08-28 15:01 被阅读12次
    function* helloWorldGenerator() {
      yield 'hello';
      yield 'world';
      return 'ending';
    }
    
    var hw = helloWorldGenerator();
    
    hw.next()
    // { value: 'hello', done: false }
    

    value 值指yield后面 执行后 表达式的值,例如‘hello’

    var m= yield 'hello'
    

    m 是执行后返回的值 即yield+表达式的值.yield表达式本身没有返回值,或者说总是返回undefined。有return 返回 return 后的值

    hw.next(j)
    

    next方法可以带一个参数,该参数就会被当作上一个yield表达式的返回值(yield+表达式的值) j指上一次表达式中的返回的值
    例子:解析

    function* foo(x) {
      var y = 2 * (yield (x + 1));
      var z = yield (y / 3);
      return (x + y + z);
    }
    
    var a = foo(5);
    a.next() // Object{value:6, done:false}
    a.next() // Object{value:NaN, done:false}
    a.next() // Object{value:NaN, done:true}
    
    var b = foo(5);
    b.next() // { value:6, done:false }
    b.next(12) // { value:8, done:false }
    b.next(13) // { value:42, done:true }
    
    Paste_Image.png

    相关文章

      网友评论

          本文标题:理解geneartor

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