首页 文章

属性'switchMap'在类型'Observable<User>'上不存在

提问于
浏览
5

尝试将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);
    });    
}

图片:
enter image description here

2 回答

  • 0

    如果您使用较旧的"patch"样式的运算符,则应从 rxjs/add/operator/switchMap 导入:

    import 'rxjs/add/operator/switchMap';
    

    由于RxJS 5.5带有"pipable"运算符,您应该从 'rxjs/operators' 导入:

    import { switchMap } from 'rxjs/operators';
    
  • 8

    我假设您正在使用Angular 6,这意味着您正在使用最新版本的RxJS . 你需要管道你的运营商 .

    obs $ .switchMap(()=> );

    就是现在

    obs $ .pipe(switchMap(()=> ));

    编辑:请记住,在您的情况下,this.refreshToken返回您的observable

    this.refreshToken() . pipe(switchMap(()=> ));

相关问题