JavaScript да циклида расмларни асинхрон юклаш
Расмларнинг йўллари массивда сақлансин:
let arr = ['img1.png', 'img2.png', 'img3.png'];
Биз бу расмларни циклда юклашимиз мумкин:
for (let path of arr) {
loadImage(path, function(image, err) {
document.body.append(image);
});
}
Код чиройли ва callback hellсиз чиқди, аммо, биз икки муаммога қайтдик: расмларнинг тартиби кафолатланмаган ва барча расмларнинг юкланган пайтини тутиб олиш имконсиз.
Ва бу вазиятда ечим йўқ: циклни ишга тушириб, унинг ичида асинхрон функцијадан фойдаланиб, сўнг циклнинг барча функциялари тугаган пайтини тутиб олиш имконсиз. Ё сизга бу патни тутиш шарт эмас ва юқоридаги код сизга мос келади ёки callback hellга хуш келибсиз.
Аммо, хафа бўлиш шарт эмас - муаммонинг ечими промислар орқали имкон, уларни биз кейинги дарсларда ўрганамиз.