我一直在使用 Angularfire2 制作 Angular2 应用程序。从 Firebase 检索数据时,我遇到了有关 FirebaseListObservable 的问题。这是我的代码。
this.requests = this._af.database.list('/requests');
此后不久,我记录了这个变量。
console.log(this.requests);
然后我得到了一个未定义的,但我想等待这个请求的响应,因为 this.requests 在这段代码中始终是未定义的。我希望你教我如何等待 firebase 请求的结果。抱歉我的英语不好。
最佳答案
由于从 Firebase 检索数据是异步的,因此您需要在请求的数据传入时“订阅”该事件。在不再使用连接后关闭(取消订阅)连接非常重要,以避免 further problems 。这可以通过以下代码来实现:
this.requests = this._af.database.list('/requests')
.subscribe(data => {
data.forEach(obj => {
console.log(obj.$key);
console.log(obj.$value);
});
this.requests.unsubscribe();
});
如果您想保留连接,因为您正在更新数据,则应该省略 this.requests.unsubscribe();
而是放置
ngOnDestroy(){
this.requests.unsubscribe();
}
在您的组件中,因此当您的组件被销毁时连接会关闭。
关于angular - 如何等待 FirebaseListObservable 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40878997/