gpt4 book ai didi

angular - 给 BehaviorSubject 初始值 - 值是一个 Observable

转载 作者:行者123 更新时间:2023-12-02 02:59:11 26 4
gpt4 key购买 nike

我知道我不能给 BehaviorSubject一个 Observable 值,但我需要一种方法来解决这个问题。在应用程序初始化时,我正在获取当前用户(如果存在),我需要提供 BehaviorSubject那个潜在值(value)。所以我的服务代码如下所示:

private user = new BehaviorSubject<User>(this.getUser());
public user$ = this.user.asObservable();

getUser(): User {
// does obviously not work!
return this.apiService.getUser()
.map(data => {
if(data) {
return data;
}
// do something else
})
}

那么是否有一些神奇的 rxjs 操作符来解决这个问题,或者其他一些可能性?

提前致谢!

最佳答案

我会这样做

private user = new BehaviorSubject<User>(null);
public user$ = this.user.asObservable();

constructor() {
this.getUser();
}

getUser(): User {
// does obviously not work!
return this.apiService.getUser()
.subscribe(data => {
if(!!data) {
this.user.next(data); // <<== added
}
// do something else
})
}

关于angular - 给 BehaviorSubject 初始值 - 值是一个 Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47408794/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com