角度单例CustomErrorHandler创建两个实例

时间:2018-12-10 09:57:00

标签: angular

我想创建一个全局异常处理程序,该处理程序在每次发生异常时都抛出一个模式。 一切在代码中似乎都是正确的,但无法正常工作,我使用的是使用Subject的CustomErrorHandler,我的ErrorModalComponent已预订事件,但预订的委托未运行。

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

第一个构造(模块创建)的调用栈的详细信息:

enter image description here

第二种构造的详细信息(视图创建):

enter image description here 示例代码:https://github.com/xavqR/AngularGettingStarted

有帮助吗?似乎是不适当的angular行为,如果将其注册为单例,则不应创建该处理程序的两个实例。

0 个答案:

没有答案