如何通过管道传递多个相关的可观察对象?

时间:2019-02-17 16:39:50

标签: angular angular-ui-router rxjs auth-guard

在Angular 7中,我通过@ngx-pwa/local-storage在本地存储JSON Web令牌(JWT)。要获取和保存键值对,此API是异步的。然后,我有了另一个方法来检索JWT并进行HttpClient调用。我似乎无法让这些异步方法起作用。

我从本地存储获取JWT的方法如下。

private getHttpHeaders(): Observerable<object> {
 return this.localStorage.getItem<string>('token', {schema: {type: 'string'}}).pipe(map(token => {
  return {
   headers: new HttpHeaders({
    'Content-Type': 'application/json',
    'X-Access-Token': token
   })
  };
 }));
}

我的其他方法如下所示。

public isLoggedIn(): Observable<boolean> {
  const url = `${this.host}/account/isloggedin`;
  return new Observable<boolean>(observer => {
    this.getHttpHeaders()
      .pipe(map(headers => {
        return this.httpClient.get<any>(url, headers)
          .pipe(map((json) => {
            observer.next(json && json.result && json.result === true);
          }));
      }));
  });
}

当我尝试致电myService.isLoggedIn()时,没有任何反应。如果我输入console.log条消息,则可以跟踪到getHttpHeaders()被调用,但是没有调用返回的Observable。

关于我在做什么错的任何想法吗?

0 个答案:

没有答案