【发布时间】:2021-01-12 02:46:57
【问题描述】:
我正在寻找一个想法,当 Interceptor 抛出 HttpError 时,如何停止订阅任何方法。在我的 Angular 应用程序中,很少有组件可以使用以下方式从后端下载数据:
getItems(){
this.isProcessing = true;
this.itemsService.getItems().subscribe((x) => {
this.itemList = x;
this.isProcessing = false;
});
}
当数据请求开始时,isProcessing 设置为 true,并且 spinner 开始循环。收到数据后就停止了。每个单独的 http 请求都通过 HttpInterceptor 向请求添加令牌,并且在任何 http 错误的情况下都有错误处理程序。 当用户无权下载某些数据时,错误 403 来自后端。我想要做的是显示带有一些信息的模态,停止订阅发出该请求的任何组件中的方法,并将 isSpinning 设置为 false 就像没有发生任何事情一样。 我是否应该在 Interceptor 中创建一些 observable 并在每种方法中使用它来判断是否停止订阅?
【问题讨论】:
-
如果你只是想停止订阅方法,只需在组件中添加 ngdestory 方法,然后取消订阅它
标签: angular typescript