【发布时间】:2017-10-09 20:59:49
【问题描述】:
我想要一个依赖于另一个可观察值的可观察值。很简单,就是找不到方法
user$: Observable<firebase.User>;
playlists$: FirebaseListObservable<any>;
constructor(db: AngularFireDatabase,
private afAuth: AngularFireAuth) {
this.user$ = afAuth.authState;
// error
this.playlists$ = this.user$.flatMap(user => db.list(`/playlists/${user.uid}`));
}
我得到的错误是:“Observable”不可分配给“FirebaseListObservable”类型。 “Observable”类型中缺少属性“$ref”。
【问题讨论】:
-
您将
playlists$输入为FirebaseListObservable,但flatMap返回Observable.. -
是的,因为
db.list返回一个FirebaseListObservable,我需要一个这个对象类型。你认为我需要订阅user$的可观察对象然后创建playlists$可观察对象吗? (删除平面地图) -
只需将
playlists$声明为Observable。这就是来自flatMap的反馈。 -
... 或者,如果您执行以下操作会发生什么情况:
this.user$.subscribe(user => this.playlists$ = db.list(/playlists/${user.uid}));? -
@developer033 这是做这种链式可观察对象的不推荐方式。
标签: angular typescript firebase rxjs observable