angular - 在错误处理Angular 7 RXJS中发出http请求
问题描述
您好internal server error
已经发现了错误并记录了它们。但我不知道如何在这个错误处理中调用下一个请求。如果请求失败,我需要selectElevation(elevation.id)
通过调用另一个请求方法来恢复开始请求。selectPhase(this.sessionState.phaseId)
selectElementPricelistConfigurator()
goToConfiguratorAndLoadData(elevation: Elevation) {
this.apiService.selectElevation(elevation.id).pipe(
mergeMap( () => this.apiService.selectElementPricelistConfigurator() ),
).subscribe(
(next) => {
...
},
(err: Error | HttpErrorResponse) => {
if (err instanceof HttpErrorResponse) {
if (err.status === 500) {
console.log('Error', err.status);
this.apiService.selectPhase(this.sessionState.phaseId);
}
} else {
throwError(err);
}
}
);
}
感谢您的帮助,没有发现任何类似的问题。
编辑:
ApiServer - selectPhase 方法:
selectPhase(phaseId: string): Observable<any> {
return this.httpClient.post(this.apiUrl + '/phases/select', {
identifier: phaseId,
});
}
解决方案
假如说
this.apiService.selectPhase(this.sessionState.phaseId)
返回一个 RxJS Observable,您需要订阅它才能触发请求。
引用官方文档:
要调用 Observable 并查看这些值,我们需要订阅它:
推荐阅读
- html - CSS 在元素之间平均划分空白,但使用最大空间
- c# - C# 中的文件监视 (.Net Core)
- node.js - 如何将 Azure Httptrigger 连接到网站?
- azure - 重新启动 Azures Kubernetes Cluster VM 会导致 GPU 问题
- php - htmlspecialchars() 需要参数 spatie/laravel-analytics
- xl-deploy - 启动 XL Deploy:不支持的类版本错误
- vue.js - 已安装 Vue 加载程序未满足的依赖项但仍然出错
- c++ - 多GPU模式下的tensorflow c ++ SetDefaultDevice
- java - Java 中通过 SSL 套接字的服务器消息的观察者
- build - VSTS ExternalTfsBuild 文件访问