Внедрить и использовать сервис на заводе углового модуля - PullRequest
1 голос
/ 25 июня 2019

Угловое приложение использует часовой для захвата исключений. Часовой предоставляется с использованием фабрики. Я пытаюсь использовать службу на этом заводе, но не могу понять, почему я получаю эту ошибку:

ERROR in/sfsfsadsf/src/app/app.module.ts(64,12): error TS2554: Expected 1 arguments, but got 0.

Остальной код:

  //Other imports
import {SentryCaptureErrorService}        from '@common/app/services/sentry-capture-error.service';


export class RavenErrorHandler implements ErrorHandler {

 constructor(
   public sentryCaptureErrorService: SentryCaptureErrorService
 ) {
 }

  RavenErrorHandler(error: any): void {    
    this.sentryCaptureErrorService.sendCapturedException(error, environment, 'app.module')
  }
}

export function provideErrorHandler() {
  if (
    environment.envName === 'local'
  ) {
    return new ErrorHandler();
  } else {
    return new RavenErrorHandler();
  }
}

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [],
  providers: [
        {
      provide: ErrorHandler,
      useFactory: provideErrorHandler,
      deps: [SentryCaptureErrorService],
      multi: true,
    },    
  ],
  bootstrap: [AppComponent],
})

export class AppModule {
  constructor(
    private sentryCaptureErrorService: SentryCaptureErrorService
  ) {
    this.sentryCaptureErrorService.configAndInstallSentry(environment);
  }

}

Включив 'sentryCaptureErrorService' в RavenErrorHandler, я получаю ошибку, упомянутую выше. Я могу добавить сервис в класс AppModule, но не в RavenErrorHandler.

...