如何知道 Zone.js 何时运行以及在何处触发以进行调试?

How know when Zone.js runs and where it has been triggered for debug purpose?

我开发的 Angular 应用程序使用了多个第三方库 (leaflet/wijmo/d3/..)。

对于表演,我几乎到处都在使用 cdRef.OnPush

为了防止 Zone 运行过多,我在某些特定组件中使用了 zone.runOutsideAngular(),但我看到了一些奇怪的行为,并且想了解更多关于何时何地(在我的代码中)触发 Zone 的信息.

你知道记录这个的方法吗?

[angular@5.2.3 & zone.js@0.8.19]

你可以使用NgZone.onStable

@Component {
  ...
} 
export class AppComponent {
  constructor (private ngZone: NgZone) {
    this.ngZone.onStable.subscribe(() => {console.log('zone stableed')});
  }
}