Angular · Senior · Запитання 11 з 75
Як виконати очищення всередині effect перед його перезапуском чи знищенням?
effect((onCleanup) => {
const id = setInterval(() => this.poll(this.url()), 5000);
onCleanup(() => clearInterval(id));
});- ✓Правильна відповідь: Зареєструвати очищення через колбек
onCleanup, який отримує ефект - 2Повернути функцію очищення лише з
ngOnDestroy - 3Ефекти самі очищають усі таймери
Пояснення
Очищення виконується перед наступним запуском (коли змінюється url) і під час знищення ефекту разом із контекстом впровадження - так інтервали не дублюються.