Простым решением будет использование модуля PreloaderQ
https://www.npmjs.com/package/preloaderq
Использовать как показано ниже
var preloader = new PreloaderQ()
preloader.setEmptyCallback(function(){
//all tasks are finished
})
preloader.setFirstTaskCallback(function(){
//started first task
})
preloader.enqueueTask('ajax1')
$.ajax({//ajax call 1
url:page1.php,
success: function(data1){
prealoader.dequeueTask('ajax1')
//do something with data1
}
});
preloader.enqueueTask('ajax2')
$.ajax({//ajax call 1
url:page2.php,
success: function(data2){
prealoader.dequeueTask('ajax2')
//do something with data2
}
});
Вызов emptycallback после того, как оба завершены