angular - 将对象放入@NgModule 中的提供者

标签 angular typescript sentry

我正在尝试在 Angular 5 项目上设置 Sentry 。指令显示一个对象被放置在提供者中,如下所示:

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 数组中还有一些东西,看起来像这样:

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

这在 Angular 上允许吗?我问这个是因为我对此很陌生,我无法让 Sentry 工作,我只是对这部分感到不安,在我开始查看其他地方之前,我想看看这是否可行。

最佳答案

这完全没问题。您正在 AppModule 中注册三个提供者 - ErrorHandlerMapDataServiceGraphService

还说每次应用程序需要 ErrorHandler 时,它应该使用您自己的 RavenErrorHandler

关于angular - 将对象放入@NgModule 中的提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50235894/

相关文章:

android - 如何根据Android项目构建类型(生产与暂存)配置 Sentry 环境?

angular - 在 Angular 2 中用 subview 替换父 View 路由器 View

javascript - 如何在扩展垫行而不是主表中显示垫表

javascript - 新的 JSX 转换。 React 16.14、Typescript 4.1.0-beta 和 React-scripts 4.0.0-next.98 无法正常工作

typescript - vscode 激活扩展失败 : Cannot find module with non-relative import

java - 配置 Sentry 以使用 log4j2 进行日志记录时出错

javascript - (未知 URL): 0 Unknown Error on Angular 5 的 Http 失败响应

angular - Angular 9 的 PrimeNG Quill Editor 自定义字体大小设置问题

Angular 8 : How to do calculation on observable object's two properties and need to save on another property

python - 新 SDK Sentry-sdk/sentry-python 中的 SENTRY_USER_ATTRS 相当于什么?