Как передать несколько зависимых наблюдаемых? - PullRequest
0 голосов
/ 17 февраля 2019

В Angular 7 я храню JSON Web Token (JWT) локально через @ngx-pwa/local-storage.Для получения и сохранения пар ключ-значение этот API является асинхронным.Затем у меня есть другой метод, который извлекает JWT и делает вызов HttpClient.Я не могу связать и заставить эти асинхронные методы работать.

Мой метод получения JWT из localalstorage следующий:

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() вызывается, но возвращаемое Наблюдаемое не вызывается.

Есть какие-либо идеи о том, что я делаю неправильно?

...