цикл for не отражает изменения, вызванные обратным вызовом setTimeout - PullRequest
1 голос
/ 18 октября 2019

Я изучаю жизненный цикл угловых компонентов. При отладке ExpressionChangedAfterItHasBeenCheckedError я наткнулся на этот код :

class AppComponent {
    _time;
    get time() {  return this._time; }

    constructor() {
        this._time = Date.now();

        setInterval(() => {
            this._time = Date.now();
        }, 1);
    }
}

Когда я много печатаю:

app = new AppComponent();
for (var i = 0; i < 1000000; ++i) {
    console.log(app.time);
}

напечатанные значения нене меняются вообще, хотя изменения должны быть очень частыми. У меня вопрос: есть ли замыкание, которое сохраняет значение app.time, чтобы несколько операторов console.log видели это же значение? Или, если это не так, почему обновление заблокировано?

...