Как опросить набор API из углового приложения? - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь опросить набор API из углового приложения.

Это мой код:

// service

subscribeToData(response: any): Observable<any> {
    const requests = [];
    response.forEach(item => {
        requests.push(this.startPolling(item.href).pipe(catchError(err => of('error'))));
    });
    return forkJoin(requests);
}

private startPolling(api: string): Observable<any> {
    return timer(0, 1000)
      .switchMap(() => this.httpClient.get(api));
}

// component
this.service.subscribeToData(response).subscribe(data => {
    // do something
})

В сетевой консоли браузера я вижу, что запросызапускаются и завершаются, но абонент не вызывается.

Правильно ли я это делаю или есть какой-то другой способ?

1 Ответ

0 голосов
/ 23 января 2019

После небольшого прочтения forkJoin не возвращается, пока все наблюдаемые внутри него не завершатся: https://www.learnrxjs.io/operators/combination/forkjoin.html

Поскольку в этом случае forkJoin содержит таймеры, я предполагаю, что они никогда не завершаются.

Он начал работать после того, как я заменил forkJoin на combineLatest https://www.learnrxjs.io/operators/combination/combinelatest.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...