Javascript 在DOM准备就绪之前执行http调用

Javascript 在DOM准备就绪之前执行http调用,javascript,angular,webpack,angular-cli,Javascript,Angular,Webpack,Angular Cli,我使用Angular cli生成的Angular 5 我想知道如何在DOM准备好并启动应用程序之前执行https调用。 我之所以想这样做,是因为应用程序太大(应用程序正在使用延迟加载)。 在网络请求中,我看到了一个丢失的时间,可以在DOM执行其工作时使用它来进行http调用 在这里,我们可以看到chrome开发者工具中的“网络”选项卡 我尝试在AppModule中添加提供程序,如下所示: { provide: APP_INITIALIZER, useFactory: (setup: Se

我使用Angular cli生成的Angular 5

我想知道如何在DOM准备好并启动应用程序之前执行https调用。 我之所以想这样做,是因为应用程序太大(应用程序正在使用延迟加载)。 在网络请求中,我看到了一个丢失的时间,可以在DOM执行其工作时使用它来进行http调用

在这里,我们可以看到chrome开发者工具中的“网络”选项卡

我尝试在AppModule中添加提供程序,如下所示:

{
  provide: APP_INITIALIZER,
  useFactory: (setup: SetupService) => () => setup.execute(),
  deps: [SetupService],
  multi: true
}
并在main.t中执行以下操作:

setupSerice.setup().then(() => {
  platformBrowserDynamic().bootstrapModule(AppModule)
    .catch(err => console.log(err));
});
但我得到了同样的结果。 setupService执行我的http调用

我还能做些什么


谢谢您的建议。

我假设您得到的结果是等待服务返回,然后再引导?如果调用调用设置服务的服务会怎么样。第一个服务在调用安装服务后可以返回承诺。我相信,只要你兑现承诺,应用程序就会自动启动

比如说: 服务调用服务

doIt():Promise<any>{
  return new Promise((resolve) => {
     this.setupService.execute();
     resolve();
   });
 }
doIt():承诺{
返回新承诺((解决)=>{
这个.setupService.execute();
解决();
});
}

setupService可以将您的数据存储在行为主题中,然后您可以在需要时获取数据。

这就是setupService的实际用途。对于这些代码,我也有同样的问题。setupService.setUp在做什么?应用程序将不会引导,直到在上面的代码中完成它做http调用,我知道应用程序不会引导,直到安装结束。但问题是,在DOM准备就绪之前,安装程序不会执行它。