【发布时间】:2021-05-31 15:51:57
【问题描述】:
我有一个关于多个 http 调用和在错误发生时捕获错误并能够在父组件上读取它们的问题。 我需要知道哪些调用失败,以便我可以在另一种方法上重试它们,但如果我在组件级别看不到它们,不知何故我不可能知道我需要重试哪个调用
// 组件调用
generateDocuments(documentType: DocumentType, validDocuments: DocumentTemplate): observable<any>{
return this.documentService.generateDocuments(clientId, ClientDescription,documentType, validDocuments)}
//服务调用:
generateDocuments(clientId: int, ClientDescription,documentType:DocumentType, validDocuments: DocumentTemplate): observable<any>{
switch(documentType){
documentType.Word:{
return this.getDocumentCall(clientId, ClientDescription, ...)}
documentType.Excel:{
return this.getDocumentCall(clientId, ClientDescription, ...)}
}
// 这行会根据调用完成的时间,一一抛出错误/成功
private getDocumentCall(clientId: int, clientDescription: string, ....)
{
return forkjoin([1,2,4,4,5].map((documentId:number) => {
this.http.get('uri'+documentId+'/'+clientId,headers..).pipe( catchError(error => {
return of(error);
});
});
我的问题是我如何知道组件级别的调用成功或失败,或者能够将所有错误/响应冒泡到组件级别
谢谢
【问题讨论】:
标签: angular typescript rxjs observable fork-join