如果变量未定义,则RxJ返回Observable

时间:2016-11-15 08:43:21

标签: angular rxjs5

我想创建一个方法getSelectedUser,只有当私有字段存在时才返回Observable(未定义)。

private user : User

init() {
   // user = loadingUser...
}

getSelectedUser(): Observable<User> {
    // return ???
}

目标是其他组件可以订阅此可观察对象并在加载后接收用户。

有人知道如何实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

然后将用户定义为可观察的:

private user: Subject<User> = new ReplaySubject<User>(1); // ensure that new registered component gets the last loaded user.

getSelectedUser(): Observable<User> {
   return user.asObservable();
}

然后在用户准备就绪时更新用户:

private someUserLoadingFunction(){
   ... retrieve user logic -> currentUser...
   this.user.next(currentUser);
}