Asynkron indlæsning af billeder i en løkke i JavaScript
Lad stierne til billederne være gemt i et array:
let arr = ['img1.png', 'img2.png', 'img3.png'];
Vi kan indlæse disse billeder i en løkke:
for (let path of arr) {
loadImage(path, function(image, err) {
document.body.append(image);
});
}
Koden blev flot og uden callback hell, men vi er tilbage til vores to problemer: rækkefølgen af billeder er ikke garanteret, og det er umuligt at fange øjeblikket for, hvornår alle billeder er indlæst.
Og der er ingen løsning i denne situation: det er umuligt at starte en løkke, bruge en asynkron funktion inde i den, og derefter fange øjeblikket for fuldførelse af alle løkkens funktioner. Enten har du ikke brug for at fange dette øjeblik, og ovenstående kode vil passe til dig, eller også er du velkommen til callback hell.
Men du skal ikke være ked af det - løsningen på problemet er mulig gennem promises, som vi vil studere i de næste lektioner.