Если вы не выключили модуль NgZone, то он будет с большой частотой вызывать механизм ChangeDetection и установить отличие между markForCheck() и detectChanges() будет довольно сложно. Метод markForCheck() сделан для работы в режиме OnPush, чтобы дать понять детектору, что мы хотим запустить синхронизацию изменений, даже не смотря на то что входные данные не изменились. В свою очередь detectChanges() создан больше чтобы работать в комбинации с методом detach(), когда вы хотите запустить ChangeDetection в локальной ветке.
Официальная документация:
https://angular.io/api/core/ChangeDet...
Код: https://github.com/stevermeister/Angu...
Дальнейшие планы по Angular Pro - https://github.com/stevermeister/Angu...
Если у вас есть вопросы или предложения, пожалуйста пишите в комментарии либо пингуйте в твиттере - / stevermeister