尝试将switchMap运算符应用于我的Observable时,我收到以下错误消息:
属性'switchMap'在'Observable'类型上不存在 .
我目前正在使用rxjs版本5.5.2,在我的组件中,我将它导入如下:
import 'rxjs/operator/switchMap';
但是,我仍然遇到编译错误 . 我已经查看了类似的问题,并没有找到适当的解决方案,对这里的问题提出了什么建议?
get appUser$() : Observable<AppUser> {
return this.user$
.switchMap(user => {
if (user) return this.userService.get(user.uid);
return Observable.of(null);
});
}
图片:
2 回答
如果您使用较旧的"patch"样式的运算符,则应从
rxjs/add/operator/switchMap
导入:由于RxJS 5.5带有"pipable"运算符,您应该从
'rxjs/operators'
导入:我假设您正在使用Angular 6,这意味着您正在使用最新版本的RxJS . 你需要管道你的运营商 .
obs $ .switchMap(()=> );
就是现在
obs $ .pipe(switchMap(()=> ));
编辑:请记住,在您的情况下,this.refreshToken返回您的observable
this.refreshToken() . pipe(switchMap(()=> ));