Mig*_*ura 2 rxjs typescript angular angular10
我有以下观察结果:
this.authenticationService.isSignedIn() -> Observable<Boolean>
this.user$ -> Observable<UserModel>
Run Code Online (Sandbox Code Playgroud)
我需要根据两者检查条件,所以我尝试了:
zip(this.authenticationService.isSignedIn(), this.user$).pipe(
map(([isSignedIn, user]: [boolean, UserModel]) => isSignedIn && user.claims))
);
Run Code Online (Sandbox Code Playgroud)
因为我得到了意想不到的结果,所以我尝试使用以下方法检查内容:
zip(this.authenticationService.isSignedIn(), this.user$).pipe(
tap(([isSignedIn, user]: [boolean, UserModel]) => {
console.log(isSignedIn);
console.log(user);
})
);
Run Code Online (Sandbox Code Playgroud)
但两人console.log并没有被处决。我缺少什么?
您可能会错过订阅。所有 rxjs 的东西都是惰性的,在订阅完成之前不会运行。如果除了运算符之外您不需要以其他方式处理结果tap,只需.subscribe()在最后添加
zip(...).pipe(
tap(...)
).subscribe();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2256 次 |
| 最近记录: |