我正在研究这个有多个模块的角度项目。我试图在每个页面的加载上显示加载器,并且只有在完成对该页面的所有API调用的请求后才隐藏加载器。 现在正在项目中发生的事情是,当一个组件被加载时,几乎没有API调用onInit(),并且一些其他API调用是在组件调用的各种服务的加载上进行的。因此,我的问题不会仅仅通过在调用onInit后立即显示加载器来解决,并在所有请求完成后隐藏它。
参考这篇文章 - Angular HTTP Interceptor - Display spinner in multi-module app
我也尝试使用Angular Interceptor,但是这也没有提供完整的解决方案,因为拦截器为每个HTTP请求工作,我无法一次显示和隐藏所有请求的加载器。结果将是: 节目 隐藏 节目 隐藏 节目 隐藏 像这样对于单页的加载,如果我使用拦截器。 需要一些关于我应该在这做什么的建议?
我不能给你这样做的总和,但是有些想法可以得到它。
我会构建一个排队服务,您可以在其中添加所有请求并处理它们。此服务可以具有queueStart rxjs主题和queueDone。
当你想要开始处理和完成时,你可以从外面处理这两个主题。完成后你订阅并停止你的微调器。在开始主题中,您调用您的微调器。在你需要的每个组件onInit()中执行此操作。