而不是 app.component 的 ngOninit,将 api 调用放在哪里,这使得系统等待响应返回并注入 body?

Instead of ngOnint of the app.component, where to put the api call which makes the system wait until the response is retuned & injected into the body?

我是 angular 的新手,正在尝试不同的东西。最近我偶然发现了一个问题,需要我根据 k 返回的结果但在应用程序加载任何内容之前采取一些措施。

现在我在 app.component.ts 的 kof 中调用 webapi,基于此我将内容隐藏在网站中,但最近我注意到服务器响应缓慢导致来自 webapi 的缓慢响应因此需要采取的行动被延迟因此没有隐藏内容。

现在,我调用 api 而不是 app.component,returns 承诺然后将结果注入 css body 的 kI 需要将 api 调用放在某个地方,直到返回结果系统不应继续。

更新:

app.component 的

ngOninit(),我们调用了 api,基本上是 returns true/false。基于此,'type' 一个 class 被注入 document.body 即 IsVisible。在 app.component 的 Sass 中,它禁用了网页中的徽标和其他内容。

api 通话

const res= app.services.getIsActiveType().toPromise();
document.body.ClassList.Add(res.type);

在sass

body {
  &.Type{
    logos {
      dispaly: none;     
    }
   }
  }

如果要在显示任何内容之前进行初始化,则需要 APP_INITIALIZER

A DI token that you can use to provide one or more initialization functions.

The provided functions are injected at application startup and executed during app initialization. If any of these functions returns a Promise or an Observable, initialization does not complete until the Promise is resolved or the Observable is completed.

You can, for example, create a factory function that loads language data or an external configuration, and provide that function to the APP_INITIALIZER token. The function is executed during the application bootstrap process, and the needed data is available on startup.

使用路由器的canLoadcanActive属性可以帮到你。