Angular 4- Show Loader在每个页面的加载上,并在所有API请求完成后隐藏

问题描述 投票:2回答:1

我正在研究这个有多个模块的角度项目。我试图在每个页面的加载上显示加载器,并且只有在完成对该页面的所有API调用的请求后才隐藏加载器。 现在正在项目中发生的事情是,当一个组件被加载时,几乎没有API调用onInit(),并且一些其他API调用是在组件调用的各种服务的加载上进行的。因此,我的问题不会仅仅通过在调用onInit后立即显示加载器来解决,并在所有请求完成后隐藏它。

参考这篇文章 - Angular HTTP Interceptor - Display spinner in multi-module app

我也尝试使用Angular Interceptor,但是这也没有提供完整的解决方案,因为拦截器为每个HTTP请求工作,我无法一次显示和隐藏所有请求的加载器。结果将是: 节目 隐藏 节目 隐藏 节目 隐藏 像这样对于单页的加载,如果我使用拦截器。 需要一些关于我应该在这做什么的建议?

angular interceptor loader
1个回答
0
投票

我不能给你这样做的总和,但是有些想法可以得到它。

我会构建一个排队服务,您可以在其中添加所有请求并处理它们。此服务可以具有queueStart rxjs主题和queueDone。

当你想要开始处理和完成时,你可以从外面处理这两个主题。完成后你订阅并停止你的微调器。在开始主题中,您调用您的微调器。在你需要的每个组件onInit()中执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.