Angular не удается выполнить setTimeout на крючке doCheck

#angular

#angular

Вопрос:

Я тестирую изменения в каждом цикле и применяю определенный класс к вычисляемому значению. Мне нужно удалить этот класс через 1 секунду. В настоящее время приложение зависает, и я не могу понять, почему. Вот код:

   ngDoCheck():void {
     const posClass = "positive-change";
     const negClass = "negative-change";
     const that = this;

     if(this.value1 - this.value2> 0){
        this.color = posClass;
      }else{
        this.color = negClass;
      }
      setTimeout(() => 
      {
        this.color = "default";
      },500);
  }
 

Это хорошо работает без тайм-аута. Я просто не могу удалить класс после задержки. Как это можно решить?

Комментарии:

1. Вы разрабатываете биржевой тикер?

2. не могли бы вы попробовать обернуть this.color = "default"; внутри NgZone.run

3. Попробовал, его заело. Тайм-аут каким-то образом приводит к какой-то заморозке