Angularfire2函数返回无限循环

时间:2017-08-13 18:33:37

标签: javascript firebase firebase-realtime-database infinite-loop angularfire2

如果预订的人过去取消了订单,我试图在表格中显示一个标志图标。

当管理员将预订状态更改为已取消时,会设置一个“已取消”状态'对于在firebase中进行预订的用户,boolean为true。

在我的HTML表格中我使用* ngIF运行一个函数,如果函数返回true则显示图标,将订单键作为参数传递给函数。

<td><i *ngIf="hasUserCanceled(order.$key)" class="fa fa-flag"></i></td>

这是函数本身:

hasUserCanceled(key) {

    //Get the userId from the order
    this.order = this.af.object('/orders/' + key);
    this.order.subscribe(res => {
      this.userId = res.userId;
    });

    this.canceledUsers = this.af.object('/users/' + this.userId);
    this.canceledUsers.subscribe((res) => {
      this.hasCanceled = res.hasCanceled
    });

    if (this.hasCanceled == true) {
      console.log('THIS IS TRUE')
      return true
    }

  }

我可以在已取消的用户的正确位置看到该标志,因此功能目的正在起作用,但问题是在控制台中,该功能一遍又一遍地运行而不是停止。有什么迹象表明我做错了吗?

控制台日志图片: console log

0 个答案:

没有答案