代码之家  ›  专栏  ›  技术社区  ›  Smokey Dawson

生成器函数没有所需的功能(角度5)

  •  0
  • Smokey Dawson  · 技术社区  · 7 年前

    这是我第一次使用发电机功能,如果我用错了,很抱歉。。

    现在我想循环这些选项,所以每次你点击按钮,它只是命令它的下一个 yield

    所以我创建了这样一个函数。。

    *order() {
       yield this.crewMembers = _.orderBy(this.crewMembers, ['available'], ['asc']);
       yield this.crewMembers = _.orderBy(this.crewMembers, ['available'], ['desc']);
       yield this.crewMembers = _.orderBy(this.crewMembers, ['username'], ['desc']);
    }
    

    然后在我的html中

    <button (click)="order().next()">ORDER</button>
    

    现在它第一次工作时,它将顺序更改为 available asc 但如果我再按一下按钮,它就不起作用了;

    我想要的结果是能够无限地按下按钮,并在我的订单选项中循环。。我做得对吗??

    谢谢

    1 回复  |  直到 7 年前
        1
  •  2
  •   Matt McCutchen    7 年前

    每次你打电话 order() ,您将从头开始启动生成器的新实例。你需要打电话 订单() 一次,将其保存在变量中,然后调用 .next() 每次单击按钮时,都在该变量上。