Как писать асинхронный код?

У меня есть функция, которая вызывается во время удаления попапа:

function removePopUpFilter() {
  let filterContainer = document.querySelector('.filter-container');
  filterContainer.style.opacity = '0';
  filterContainer.remove()
}

Мне надо каким-либо образом сделать это ассинхронным, чтобы сначала контейнер получил свойство опасити 0, а затем удалился. В классах задан трансишен, поэтому опасити происходит плавно.
Я могу это сделать обернув удаление в таймаут, но мне кажется это очень некрасивый способ писать такой код асинхронно:

function removePopUpFilter() {
  let filterContainer = document.querySelector('.filter-container');
  filterContainer.style.opacity = '0';
  setTimeout(() => {
    filterContainer.remove()
  }, 400);
}
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
тут можно через событие окончания transition — transitionend:

function removePopUpFilter() {
  const filterContainer = document.querySelector('.filter-container');
  filterContainer.style.opacity = '0';
  filterContainer.addEventListener('transitionend', () => filterContainer.remove());
};
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Используйте событие transitionend
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы