Skip to main content

Що робить функція очищення всередині effect()?

Функція очищення всередині effect() - це спосіб прибрати або зупинити щось перед наступним запуском ефекту.

Angular викликає її автоматично перед повторним спрацюванням або при знищенні ефекту.

Приклад:

ts
import { signal, effect } from '@angular/core'; const id = signal(1); effect(onCleanup => { const timer = setInterval(() => { console.log('ID:', id()); }, 1000); onCleanup(() => clearInterval(timer)); // очищення перед новим запуском });

Що відбувається:

  1. Ефект запускається і створює setInterval.
  2. Коли id змінюється, Angular викликає функцію очищення (clearInterval), щоб не запустити два таймери.
  3. Потім запускає ефект заново.

Підсумок: очищення потрібне, щоб не накопичувалися старі підписки, таймери та інші побічні дії при повторних викликах ефекту.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.