You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Привет! Ты не мог ли немного пояснить за счет чего достигается след. фича: есть три переменных a,b,c, где c = a() + b(); Если мы меняем a и b, то c вычисляется единожды.
The text was updated successfully, but these errors were encountered:
Привет. При изменении a вычисления c не происходит, вместо этого a добавляется в коллекцию изменённых ячеек и ставиться nextTick (setTimeout 0) в котором произойдёт вычисление. Дальше меняется b, он тоже добавляется в ту же коллекцию, nextTick уже не ставится, тк один уже есть. Всё это происходит здесь. Дальше срабатывает nextTick в котором всё считается один раз. Есть ситуации в которых сделанные изменения нужны немедленно, например:
leta=cellx(1);letb=cellx(2);letc=cellx(()=>a()+b());a(5);console.log(c());// здесь расчёт изменений нужен ещё до срабатывания nextTickb(10);console.log(c());// и здесь
поэтому методы создающие такие ситуации (get, on, off, disable) запускают расчёт синхронно и в данном примере c посчитается два раза.
Привет! Ты не мог ли немного пояснить за счет чего достигается след. фича: есть три переменных a,b,c, где c = a() + b(); Если мы меняем a и b, то c вычисляется единожды.
The text was updated successfully, but these errors were encountered: