Всем привет. Не могу разобраться как работают коллбэк функции. Пытаюсь реализовать ее на реальном примере, но ничего не выходит.
Подскажите плз, как это работает. Допустим у меня на сайте есть прелоадер, который, очевидно грузиться в самом начале:
let images = document.images,
imagesTotalCount = images.length,
imagesLoadedCount = 0;
for(let i = 0; i < imagesTotalCount; i++) {
imageClone = new Image();
imageClone.onload = imageLoaded;
imageClone.onerror = imageLoaded;
imageClone.src = images[i].src;
}
function imageLoaded() {
imagesLoadedCount++;
if(imagesLoadedCount >= imagesTotalCount) {
setTimeout (function () {
if(!preloader.classList.contains('done')) {
preloader.classList.add('done');
}
}, 1000);
}
}
А также есть вебпак модули, которые необходимо запустить, после того, как скроется прелоадер, т.к. в модулях анимационный скрипт лежит, который во время показа прелоадера запускаться не должен:
let vars = require('./modules/vars'),
anim = require('./modules/anim'),
slider = require('./modules/slider');
vars();
anim();
slider();
Как мне используя коллбэк функцию, запустить сначала мой преоадер, а затем как выполнится условие в прелоадере if(!preloader.classList.contains('done')) запустить модули? Меня интересует как можно это сделать исключительно коллбэком, потому что я не до конца понимаю, как они работают. Понимаю, что вариантов есть масса для выполнения моей задачи. Но меня пока интересует только коллбэк.
Заранее большое спасибо за помощь!