Що робить функція очищення всередині 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)); // очищення перед новим запуском
});Що відбувається:
- Ефект запускається і створює
setInterval. - Коли
idзмінюється, Angular викликає функцію очищення (clearInterval), щоб не запустити два таймери. - Потім запускає ефект заново.
Підсумок: очищення потрібне, щоб не накопичувалися старі підписки, таймери та інші побічні дії при повторних викликах ефекту.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.