Angular 2 - 当我想更新 Ionic 2 中的 Firebase 数据时,我的应用程序卡住了



我正在尝试更新火力库中的多个值,但在下面的代码中遇到了小问题。 我的应用程序在第一次单击更新按钮时工作正常。 但是当我再次单击更新按钮时,我不知道为什么应用程序卡住了。

public list1: FirebaseListObservable<any[]>;
public list2: FirebaseListObservable<any[]>;
...
...
function(id,title,desc){
this.list1.subscribe(dataX => {
dataX.forEach(L1=> {
if(L1.nID==id){
this.list1.update(L1.$key, {
title: title,
desc: desc
})
}
})
})
}

看起来您正在订阅自我更新的数据,从而导致奇怪的循环/锁定。

this.list1.subscribe(将订阅 list1 中的每个更改,因此如果 list1 中有更新,则会触发此函数。

总之:this.list1.update(将更新 list1,这将触发this.list1.subscribe(这将触发this.list1.update(这将触发this.list1.subscribe(依此类推......

要解决此问题,您可以使用Mohamad Rabee在评论中所说的话并使用this.list1.take(1).subscribe(...)

但是,如果这不是预期行为,并且你想要订阅 list1 的所有更新,请考虑从订阅中删除更新函数。

希望这在某种程度上对您有所帮助,

问候

相关内容

  • 没有找到相关文章

最新更新