如何使用 rxjs 在以下代码中只有 1 个 subscribe 语句:
this.authStore.jwtContainer$.subscribe(x =>
this.userService.getUserById(x.userLoginId).subscribe(z => this.user = z));
Run Code Online (Sandbox Code Playgroud)
我对 rxjs 比较陌生,希望它是地图运营商之一?
只需使用 switchMap (或 mergeMap )运算符,如下所示
简单的方法
this.authStore.jwtContainer$.pipe(
switchMap(x=>this.userService.getUserById(x.userLoginId))
.subscribe(z => this.user = z);
Run Code Online (Sandbox Code Playgroud)
更好的
this.authStore.jwtContainer$.pipe(
map(x=>x.userLoginId),
switchMap(loginId=>this.userService.getUserById))
.subscribe(z => this.user = z);
Run Code Online (Sandbox Code Playgroud)
switchMap 和 mergeMap 用于将结果从 observable 传递到另一个,简单的“map”运算符在这里可以调整您发出的值。
| 归档时间: |
|
| 查看次数: |
321 次 |
| 最近记录: |