Как вызвать «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, они отрабатывают по истечении первого таймаута.
Не пойму как отловить внутренний, подскажите пожалуйста
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
if ($el.length) setTimeout(loop, 200);
else { /* все, конец, вызывайте свой коллбек*/ }
Ответ написан
Комментировать
mosesfender
@mosesfender
Меланхолик, параноик, падал с коек
Пробовал callback, promise, они отрабатывают по истечении первого таймаута.

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

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

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