-
On default changeDetection, every async task will trigger changed detection (as dirty checking - comparing new value to old and decides if to update the view)
-
On onPush the component depends by its @Input() and changeDetection will be triggred when:
- Input reference changed (which is awsome cause it forces you to work with immutable objects).
- If a componnent custom/dom event is triggred (or its child event).
- When explicitly running the detectChanges() of ChangeDetectorRef or by ApplicationRef.tick() which will run change detection upon all application.