Здесь у меня есть простой тестовый код, который загружает проверку изображений в браузере. Здесь я использовал асинхронное событие onload для добавления изображения в dom после его завершения загрузки. Изображения загружаются просто отлично. Проблема заключается в том, что я постоянно перезагружаю страницу с изменением последовательности нескольких изображений времени.. Если изображение-2 загружено перед изображением-1, то сначала загружается изображение-3, и т. Д. Как я могу убедиться, что изображения загружаются последовательно, как первая загрузка image1, затем image2, image3 и т. д. каждый раз, когда я загружаю страницу. Как я могу это сделать?Как сделать так, чтобы изображения загружались последовательно
var images = ['cat1.png','cat2.jpg','cat3.jpg'];
var i = 0;
images.forEach(function(elem,index,arr){
var image=new Image();
image.onload = function(){
document.body.appendChild(image);
console.log(++i);
};
image.onerror = function(){
console.log('error occured');
}
image.src = elem;
image.style.width = '300px';
image.style.height = '300px';
});
Использование обещает https://developer.mozilla.org/nl/docs/Web/ JavaScript/Reference/Global_Objects/Promise – Roberrrt
Но foreach - это синхронный метод. Он должен блокировать все до загрузки первого изображения, не так ли? –
@ AL-zami 'onload' - это асинхронное событие, поэтому обратный вызов' forEach' не ждет загрузки изображения, он запускает загрузку, а затем продолжает – Frxstrem