【发布时间】:2020-01-24 18:05:12
【问题描述】:
我需要以下代码来返回Observable<ApiResponse>。我不确定这是否可行或者我需要不同的方法?
private doRequestProducts() {
const sequence$ = this.http.post<ApiResponse>(this.baseUrlOverview, {} { observe: 'response' }).pipe(
switchMap(res => {
if (res.status !== 200) {
throw new Error('Value expected!');
}
const productResponse: productOverviewResponse = {... res.body.data};
const responses: Observable<ApiResponse>[] = [];
productResponse.Products.forEach((item, index) => {
const response: Observable<ApiResponse> = this.http.post<ApiResponse>(this.baseUrlDetail, {
productID: item.productId,
});
responses.push(response);
});
return forkJoin(responses).pipe(
map(d => {
const items: product[] = [];
d.forEach((api) => {
if (api.status === 'ok') {
const invResp: product = {... api.data};
items.push(invResp);
}
});
})
);
}
));
}
【问题讨论】:
-
您能详细说明这段代码现在在做什么吗? (2 个 http 发布请求?)你需要它做什么?
标签: angular typescript rxjs