I already know that I can postpone an Angular bootstrap until a Promise or Obseravable are resolved.
Example :
app.module.ts
{
provide: APP_INITIALIZER,
useFactory: (configService: ConfigurationService) => ()=> configService.load(),
deps: [ConfigurationService],
multi: true
}
But i've seen this other approach of using platformBrowserDynamic
's providers :
example :
main.ts
:
(function () {
return new Promise((resolver) => {
const someData = {...}
window.setTimeout(() => //simulate ajax data fetch
{
resolver(someData );
}, 1000);
});
})()
.then((myData:any) => platformBrowserDynamic([ {provide: 'pbdProvider', useValue: myData }]).bootstrapModule(...)
Question:
When should I use APP_INITIALIZER
vs (platformBrowserDynamic
with provide
)?