@zlodiak

Как периодически возвращать асинхронные значения?

Вот такой сервис без проблем каждые 3 секунды возвращает значения:
getAuthorizedUser(): Observable<User> {
    return Observable.timer(0, 3000).map(() => {
      return this.globalVars['authorizedUser'];
    });
  }

Здесь this.globalVars['authorizedUser'] это не асинхронное, а обычное статическое значение.

Вот такой сервис:
getTasks(): Observable<any> {
    //return this.httpClient.get(Config.host + `tasks`);  // ЭТО РАЮБОТАЕТ

    return Observable.timer(0, 3000).map(() => {
      const r = this.httpClient.get(Config.host + `tasks`);
      console.log(r);
      return r;
    });
  }


не возвращает ничего. В консоли каждые 3 секунды выводится вот что:
Observable {_isScalar: false, source: Observable, operator: MapOperator}
operator
:
MapOperator {project: ƒ, thisArg: undefined}
source
:
Observable {_isScalar: false, source: Observable, operator: FilterOperator}
_isScalar
:
false
__proto__
:
Object


Подскажите пожалуйста как исправить код.
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
ты возвращаешь Observable а тебе надо его распаковать
return Observable.timer(0, 3000).flatMap(()=>this.httpClient.get(Config.host + `tasks`)).map((r) => {
      console.log(r);
      return r;
    });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы