angular 9 отображение httpClient.Get проблема - PullRequest
0 голосов
/ 10 марта 2020

В angular 4 у нас был универсальный c метод, который в основном сгладил URI:

return Observable.forkJoin(fullUri, requestOptions)
            .flatMap((results: [string, RequestOptions]) => this.http.get(results[0], results[1]))
            .map(this.extractData)
            .catch(this.errorMapperService.handleError);

Теперь в Angular 9 RequestOptions устарел, а httpClient.get теперь возвращает количество объектов по второму параметру.

Итак, в настоящее время у меня есть:

return forkJoin(fullUri, requestHeaders)
      .pipe(flatMap((results: [string, any ]) => this.httpClient.get(results[0], { withCredentials: true, headers: results[1] })))
      .pipe(map(this.extractData))
      .pipe(catchError(this.errorMapperService.handleError));

, но в моем flatMap, где я сопоставляюсь с любым, это не корректно выравнивается. Если я изменю 'any' на HttpHeaders, он просто не скомпилируется. Может кто-нибудь сказать мне, к чему я должен сплющить это?

1 Ответ

0 голосов
/ 10 марта 2020

forkJoin принимает некоторые повторяемые наблюдаемые и ожидает их завершения. Если fullUri и requestHeaders не наблюдаемы, forkJoin будет жаловаться.

Чтобы сделать один http-запрос таким, каким вы были, просто соедините map и catchError на http.get наблюдаемых.

const options = { withCredentials: true, headers: requestHeaders };
return this.httpClient.get(fullUri, options).pipe(
  map(this.extractData),
  catchError(catchError(this.errorMapperService.handleError))
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...