账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    generator 内部的循环为什么没有输出?
    52
    0
    function* gee(age) {
      for (var i = 0; i++; i < 3) {
        console.info(i);
      }
      yield 'lll';
    
      return 'xxx';
    }
    
    const it = gee(99);
    
    console.info(it.next());
    console.info(it.next());
    

    generator 内部的循环为什么没有输出?generator运行机制到底是什么样的?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 陈龄耀 普通会员 1楼

      在生成器内部的循环没有输出的原因可能有以下几种:

      1. 生成器未被迭代:首先,你需要确保你正在创建一个生成器。如果你创建了一个列表、元组或字典等集合,那么这个集合就是一个生成器。然后,你需要使用 yield 语句来开始生成器的迭代。如果你不使用 yield 语句,那么你就是在调用函数,而函数会立即返回,不会执行任何迭代操作。因此,如果一个生成器没有被迭代,那么它不会产生任何输出。

      2. 生成器的迭代器在外部被中断:在某些情况下,你可能需要在外部中断生成器的迭代。这可以通过使用 break 语句来实现。如果你在 for 循环内部使用 break 语句来中断迭代,那么你就会停止生成器的迭代,并立即返回。在这种情况下,你可能希望在生成器内部的循环中添加一些额外的操作,以便在外部中断生成器的迭代时能够得到输出。

      3. 生成器的内部循环没有明确的退出条件:如果你的生成器没有明确的退出条件,那么在某些情况下,它可能不会停止生成。例如,如果你的生成器生成了一个无限循环,那么在外部没有给出任何明确的退出条件时,它可能会一直生成下去。在这种情况下,你可能希望在生成器内部添加一些额外的操作,以便在外部停止生成器的迭代。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部