angular singleton CustomErrorHandler创建两个实例

我想创建一个全局异常处理程序,每次发生异常时都会抛出一个模态 . 代码中的所有内容似乎都是正确的,但它不起作用,我使用的是使用Subject的CustomErrorHandler,我的ErrorModalComponent订阅了该事件,但订阅的委托没有运行 .

观察到的行为:如果我在CustomErrorHandler中放置一个断点,它会被执行两次,我使用的是provideIn:“root”,它不应该多次实例化 . 该组件订阅了CustomErrorHandler的第二个实例的事件,并且处理程序正在从第一个实例通知 .

第一个构造(模块创建)的callstack的细节:

第二个结构的细节(视图创建):

示例代码:https://github.com/xavqR/AngularGettingStarted

一些帮助?它似乎是一个不合适的angular行为,如果它被注册为单例,则不应该创建处理程序的两个实例 .

回答(0)