【发布时间】:2021-04-26 05:04:09
【问题描述】:
我是 rxjs 的 Angular 课程的新手,我们的小组收到了挑战。
他们给我们发了一大段代码,并说虽然它工作正常,但代码并不干净,并且“getUserLogin”函数与“login”方法相比有些重复。因此,挑战在于识别它并消除这种重复。
代码如下:
login(): Observable<UserModel> {
if (!sessionStorage["userCredentials"]){
return this.http.get<UserModel>(`${environment.apiLogin}/user/login?sistema=${enviroment.system}`,
{ withCredentials: true })
.pipe(
tap((res: UserModel) => {
sessionStorage["userCredentials"] = JSON.stringify(res);
})
);
} else {
return Observable.of(<UserModel>JSON.parse(sessionStorage["userCredentials"]));
}
}
getUserLogin(): Observable<string> {
if (sessionStorage["userCredentials"]){
const userData = <UserModel>JSON.parse(sessionStorage["userCredentials"])
return Observable.of(userData.login);
}
return Observable.of("");
}
我们将非常感谢您在解决这一挑战方面的任何帮助。提前致谢!
【问题讨论】:
-
如果
getUserLogin()的返回语句都使用Observable.of(),为什么它需要返回一个 Observable?返回纯字符串不是更简单吗? -
我也很难理解!你知道一些阅读材料以了解更好的可观察方法吗?
标签: javascript angular typescript rxjs