JavaScript Ready | Программирование
Фотография
нажмите — покажем
нажмите — покажем
Подписывайтесь на событие только один раз через once!
У addEventListener() есть опция once: обработчик автоматически удаляется после первого срабатывания. Без ручного removeEventListener():
button.addEventListener('click', handleClick, {
once: true
});
Особенно полезно для одноразовых действий: завершения анимации, первого взаимодействия, загрузки ресурса или ожидания ответа.
element.addEventListener('transitionend', () => {
element.remove();
}, { once: true });
Можно удобно превращать одноразовые события в Promise:
const once = (target, event) =>
new Promise(resolve =>
target.addEventListener(event, resolve, { once: true })
);
await once(video, 'ended');
console.log('Видео закончилось');
🔥 Для одноразового события используйте { once: true }. Если ждёте одно из нескольких — снимайте оставшиеся обработчики через AbortController.
📣 JS Ready | #совет
14 · 519 ·