所以我在角色服务中调用我的firebase实时数据库,如下所示:
[4, 4, 4]
回调只是修改了对我需求的响应。我需要做的是在我调用readItems() {
return this.af.database.ref(`/path`)
.on('value', snap => this.callback(snap.val()));
}
的组件中获取此修改后的数据。在这里调用上述组件:
readItems
我希望在完成时找到并使用带有this.service.readItems();
或subscribe
的可观察或承诺返回修改后的响应。我无法想象如何做到这一点,任何帮助都会很棒。
答案 0 :(得分:2)
您可以在传递给on
函数的回调中使用来自rxjs的Subject并订阅它:
valueChanged$ = new Subject();
callback(val) {
// some code ...
valueChanged$.next(val); // pass whatever you need to receive in the subscription
}
readItems() {
return this.af.database.ref(`/path`)
.on('value', snap => this.callback(snap.val()));
}
然后在你的代码中:
this.valueChanged$.subscribe(data => doStuff(data));
this.service.readItems();