在angular 4中,我们有一个泛型方法,它基本上将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时,它不能正确展平。如果我把'any‘改成HttpHeaders,它就不能编译。谁能告诉我我应该把这个展平到什么程度?
发布于 2020-03-10 10:00:27
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))
);
https://stackoverflow.com/questions/60615005
复制相似问题