Я использую APP_INITIALIZER для выполнения некоторых вызовов API, все работает нормально, но добавление
{ provide: APP_INITIALIZER, useFactory: MyProviderFactory, deps: [MyService], multi: true }
в app.module.ts не проходит мои тестовые случаи.Вот мой файл app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, APP_INITIALIZER } from '@angular/core';
import { RouterModule } from '@angular/router';
import { HttpClientModule } from '@angular/common/http';
import { LayoutModule } from '@angular/cdk/layout';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
// tslint:disable-next-line:max-line-length
import { MyService } from './services/my-provider.service';
export function MyProviderFactory(provider: MyService) {
return () => provider.getdata();
}
@NgModule({
declarations: [
AppComponent,
],
imports: [
BrowserModule,
HttpClientModule,
FormsModule,
BrowserAnimationsModule,
HttpClientModule,
ReactiveFormsModule,
RouterModule.forRoot([
{ path: '', component: AppComponent }
])
],
providers: [ MyService,
{ provide: APP_INITIALIZER, useFactory: MyProviderFactory, deps: [MyService], multi: true }
],
bootstrap: [AppComponent]
})
export class AppModule { }
Вот ошибка
"message": "An error was thrown in afterAll\nFailed: You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
Также как проверить APP_INITIALIZER в приложении.
Любая помощь будетоценили.