The APP_INITIALIZER is an instance of InjectionToken. It is a built in Injection token provided by Angular. The Angular will execute the function provided by this token when the application loads. If the function returns the promise, then the angular will wait until the promise is resolved. This will make it ideal place to perform some initialization logic before the application is initialized.
The Angular Injector lives at the core of Angular Dependency injection system. In this article we will look at it in more detail. We will also take a look at the @Injectable & @Inject decorators.