no-zone-run-apis
Detects Zone.run APIs.
Rationale
Zone run
, runGuarded
and runTask
will trigger change detection in whole application and should be used with caution. Improper uses of runOutsideAngular
may bring overhead and cause performance issues.
Examples
❌ Examples of incorrect code for this rule
import { Component, NgZone } from '@angular/core';
import { Store } from '@ngrx/store';
import { selectFoo } from '../../store/foo/foo.selectors';
@Component({
templateUrl: './foo.component.html',
})
export class FooComponent {
constructor(private zone: NgZone, private store: Store) {
setTimeout(() => {
this.zone.runOutsideAngular(() => {
// ...
});
}, 500);
}
handleEvent(event: any) {
this.store.select(selectFoo).subscribe((value) => {
this.zone.run(() => {
// ...
});
});
}
}