大多数httpClient拦截器教程都捕获错误响应以显示警报。
示例如下:
https://ionicacademy.com/ionic-http-interceptor/
https://medium.com/@deniscangemi/intercept-http-requests-in-angular-c6392b7b0e0
是否可以使用拦截器为每个HTTP请求提供一个加载器?
如果是,如何处理或捕获成功的HTTP请求,以解除加载器。
大多数httpClient拦截器教程都捕获错误响应以显示警报。
示例如下:
https://ionicacademy.com/ionic-http-interceptor/
https://medium.com/@deniscangemi/intercept-http-requests-in-angular-c6392b7b0e0
是否可以使用拦截器为每个HTTP请求提供一个加载器?
如果是,如何处理或捕获成功的HTTP请求,以解除加载器。
3条答案
按热度按时间62lalag41#
你也可以在管道中添加一个
tap
函数,它将在每次运行时执行,如下所示:8e2ybdfx2#
我写了一个简单的服务,它允许我在整个应用程序中启用/禁用加载器。您只需为API调用提供一个唯一的名称:
密钥可以是例如API端点URL。您可以将监视器注入拦截器。
通过这种方式,您可以在任何地方显示加载器,而不必担心在许多组件层之间传递标志/事件,只是为了显示加载器。
例如,我的应用程序中有一个列表。我可以从许多地方(过滤器,搜索栏或用户向下滚动后)获取新的项目。我不需要将所有组件连接到我的清单来显示加载器,我只需要调用:
watcher.start('actionName')
并且清单知道,它应该显示加载器:
<qlisting [loading]="watcher.isLoading(getUnitsActionName)">
nhaq1z213#
您可以使用map并验证响应中是否有任何错误。
解决方案二:正在使用catchError。