Продолжить выполнение только после завершения .each ()
Я ищу способ вызова функции только после.each()
заканчивает свое исполнение. В приведенном ниже примере, как убедиться, чтоpostPreparation()
работаетнезамедлительно после $('.element').each()
завершается?
$('.element').each(function() {
/**
* 'prepareLayer()' is a complex function that takes a while to complete and,
* as in this construct, needs to be invoked for each matched element. Basically,
* 'prepareLayer()' adds a lot of new HTML elements to the page.
*/
prepareLayer();
});
/**
* Ideally, this should immediately run _after_ the above function completes
* i.e. after each '.element' finishes running prepareLayer().
*
* 'postPreparation()' needs to attach some event handlers for the new HTML elements
* created in 'prepareLayer()'.
*/
postPreparation();
Технически, я ищу способ вызвать функцию обратного вызова для.each()
.
НОТАЯ только что подтвердил, в приведенном выше примере, чтоpostPreparation()
будет выполняться только после.each()
завершается. Проблема была мояprepareLayer()
создает новые элементы HTML с использованием AJAX, поэтомуeach()
возвращается преждевременно. Как предлагает @Alnitak, асинхронный AJAX-запрос не остановится.each()
от преждевременного возвращения.