zoukankan      html  css  js  c++  java
  • yield* 表达式

    yield* 表达式用于委托给另一个generator 或可迭代对象。

    委托给其他生成器

    function* g1() {
      yield 2;
      yield 3;
      yield 4;
    }
    
    function* g2() {
      yield 1;
      yield* g1();
      yield 5;
    }
    
    var iterator = g2();
    
    console.log(iterator.next()); // { value: 1, done: false }
    console.log(iterator.next()); // { value: 2, done: false }
    console.log(iterator.next()); // { value: 3, done: false }
    console.log(iterator.next()); // { value: 4, done: false }
    console.log(iterator.next()); // { value: 5, done: false }
    console.log(iterator.next()); // { value: undefined, done: true }
    

      

    委托给其他可迭代对象

    function* g3() {
      yield* [1, 2];
      yield* "34";
      yield* arguments;
    }
    
    var iterator = g3(5, 6);
    
    console.log(iterator.next()); // { value: 1, done: false }
    console.log(iterator.next()); // { value: 2, done: false }
    console.log(iterator.next()); // { value: "3", done: false }
    console.log(iterator.next()); // { value: "4", done: false }
    console.log(iterator.next()); // { value: 5, done: false }
    console.log(iterator.next()); // { value: 6, done: false }
    console.log(iterator.next()); // { value: undefined, done: true }
    

      

    yield* 表达式的值

    function* g4() {
      yield* [1, 2, 3];
      return "foo";
    }
    
    var result;
    
    function* g5() {
      result = yield* g4();
    }
    
    var iterator = g5();
    
    console.log(iterator.next()); // { value: 1, done: false }
    console.log(iterator.next()); // { value: 2, done: false }
    console.log(iterator.next()); // { value: 3, done: false }
    console.log(iterator.next()); // { value: undefined, done: true }, 
                                  // 此时 g4() 返回了 { value: "foo", done: true }
    
    console.log(result);          // "foo"
    

      

  • 相关阅读:
    C#
    C#
    C#
    创建一个ROS包
    创建一个工作空间
    ROS的文件系统
    单一职责原因
    策略模式
    UML类图
    简单工厂模式
  • 原文地址:https://www.cnblogs.com/yiyi17/p/10349037.html
Copyright © 2011-2022 走看看