gpt4 book ai didi

javascript - Typescript Resolve Observable 实体

转载 作者:行者123 更新时间:2023-11-30 20:48:09 24 4
gpt4 key购买 nike

我想将一个 observable 解析为它的底层类型。是的,我知道我不应该这样做,但目前我想在不修复我的架构的情况下测试一些东西,我想知道它是否可能。

这是基础提供者中调用 GET 请求的函数

getByRoute(url: string): Observable<T> {
return this.http.get(url).map(res => <T>res.json());
}

我有一个唯一的类返回一个只有一个 Id 的具体对象。 //public currentUser = { id: 1 };

但现在我正在尝试实现我的提供程序以延迟加载当前用户,我现在没有时间切换所有内容以使用可观察对象,但我想知道我的其他代码是否有效。

private _user: User;
get currentUser(): User {
if (this._user == null) {
this._user = this.getLoggedInUser();
}
return this._user;
}
set currentUser(user: User) {
this._user = user;
}

constructor(public usersProvider: Users) {
}

getLoggedInUser(): User {
return this.usersProvider.getByRoute(URL).single();
};

如何解决我的 Observable 以获得实体?

最佳答案

您需要订阅可观察对象,然后将其分配给您的类的属性。

this.usersProvider.getByRoute(URL).subscribe(next => {
this.currentUser = next;
});

请注意,您需要自行清理此订阅! (此线程将对此有所帮助:Angular/RxJs When should I unsubscribe from `Subscription`)

此外,您不能真正“解析”一个 Observable——它不是 Promise!查看此线程了解更多信息:Angular - Promise vs Observable

关于javascript - Typescript Resolve Observable 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48479022/

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