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

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

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

Войти через центр авторизации
Похожие вопросы
от 30 000 до 65 000 руб.
BSSL Москва
от 50 000 до 150 000 руб.
от 60 000 до 90 000 руб.
16 июл. 2019, в 23:23
5000 руб./за проект
16 июл. 2019, в 22:43
10000 руб./за проект