代码之家  ›  专栏  ›  技术社区  ›  Abel Jojo

角度解析Rxjs映射并订阅多个API

  •  2
  • Abel Jojo  · 技术社区  · 8 年前

    应用程序需要先获取jwt令牌,然后使用令牌,收集门户信息。这段代码是用解析器编写的。

    此代码产生错误异常:

    什么时候 Observable<any>

    @Injectable()
    export class PortalLoadingResolverService implements Resolve<any> {
        constructor(
          private authService:AuthService,
          private emiDataService:EmiDataService,
        ) { }
    
        resolve():Observable<any> {
          return this.authService.getJwtToken()
          .map(res => res.json())
          .subscribe(JwtToken => {
            debugger;
            localStorage.setItem('id_token',JwtToken.token);
            return this.emiDataService.getBasicLoadingDatas();
          });
        }
    }
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Pankaj Parkar    8 年前

    你的方法没有返回 Observable 可观察的 Subscription 可观察的。你可以很容易地返回一个 通过链接可观察到 switchMap

    resolve():Observable<any> {
      return this.authService.getJwtToken()
      .map(res => res.json())
      .switchMap(JwtToken => {
        localStorage.setItem('id_token',JwtToken.token);
        return this.emiDataService.getBasicLoadingDatas();
      });
    }