Задать вопрос

Как вызвать «callback» по завершении рекурсии?

Здравствуйте, надо выполнить код по истечении этого цикла:
const $el = Array.from(document.querySelectorAll(elemAnimate));
setTimeout(function loop() {
	$el.shift().animate(animFrame, animTiming);
	if ($el.length) setTimeout(loop, 200);
}, 50);


как отловить завершения цикла?
Пробовал callback, promise, они отрабатывают по истечении первого таймаута.
Не пойму как отловить внутренний, подскажите пожалуйста
  • Вопрос задан
  • 181 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
if ($el.length) setTimeout(loop, 200);
else { /* все, конец, вызывайте свой коллбек*/ }
Ответ написан
Комментировать
mosesfender
@mosesfender
Меланхолик, параноик, падал с коек
Пробовал callback, promise, они отрабатывают по истечении первого таймаута.

А можно увидеть как это таймаут в promise?
Promise для того и придумали, чтобы со всеми этими setTimeout не парится, а ожидать окончания выполнения чего либо нибудь.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы