Servicios de inyección Angular2 en ErrorHandler personalizado
Tengo el siguiente código :
app.module.ts:
NgModule({
declarations: [
AppComponent
],
imports: [
RouterModule,
BrowserModule,
ReactiveFormsModule,
FormsModule,
HttpModule,
AppRoutingModule // Routes
],
providers: [ // services
AppLog,
{provide: ErrorHandler, useClass: MyErrorHandler}
],
bootstrap: [AppComponent]
})
export class AppModule {}
MyErrorHandler.ts:
@Injectable()
export class MyErrorHandler implements ErrorHandler {
constructor (private _appLog: AppLog) {}
handleError(error:any):void {
let errorMessage: string = "" + error
this._appLog.logMessageAsJson(errorMessage, "error")
.subscribe(
...
)
}
}
appLog.ts
@Injectable()
export class AppLog {
constructor (private _http: Http) {}
logMessageAsJson(message: string, type: string) {
let headers = new Headers({ "Content-Type": "application/json" })
let jsonMessage = {"type": type, "message": message}
return this._http.post(JSON.stringify(jsonMessage), headers)
}
}
Sin embargo, cuando mi aplicación arranca, falla si tengo una inyección enMyErrorHandler
con el siguiente error:
Unhandled Promise rejection: Provider parse errors:
Cannot instantiate cyclic dependency!
Si eliminoconstructor (private _appLog: AppLog) {}
y luego hacer algo más enhandleError
funciona bien y se llama ErrorHandler.
Supongo que no funciona ya que AppLog y MyErrorHandler se instancian al mismo tiempo