普京在@NgModule中将一个对象变成提供者



我正在尝试在一个角度 5 项目上设置哨兵。这些指示显示放置在提供程序中的对象,如下所示:

import * as Raven from 'raven-js';
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, ErrorHandler } from '@angular/core';
import { AppComponent } from './app.component';
Raven
.config('https://KEY')
.install();
export class RavenErrorHandler implements ErrorHandler {
handleError(err:any) : void {
Raven.captureException(err.originalError);
}
}
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ],
providers: [ { provide: ErrorHandler, useClass: RavenErrorHandler } ]
})
export class AppModule { }

我的项目在提供程序数组中还有一些东西,看起来像这样:

providers: [
{ provide: ErrorHandler, useClass: RavenErrorHandler }, //sentry
MapDataService,
GraphService
]

这在角度中允许吗?我问是因为我对此很陌生,我不能让哨兵上班,我只是对这部分感到不安,在我开始寻找其他地方之前,我想看看这是否可以。

这完全没问题。您在 AppModule 中注册了三个提供程序 -ErrorHandlerMapDataServiceGraphService

并且还说每次应用程序需要错误处理程序时,它应该改用您自己的RavenErrorHandler

最新更新