Attēlu asinhronā ielāde ciklā JavaScript
Lai attēlu ceļi tiek glabāti masīvā:
let arr = ['img1.png', 'img2.png', 'img3.png'];
Mēs varam ielādēt šos attēlus ciklā:
for (let path of arr) {
loadImage(path, function(image, err) {
document.body.append(image);
});
}
Kods izrādījās skaists un bez callback hell, tomēr, mēs atgriezāmies pie mūsu divām problēmām: attēlu secība nav garantēta un nav iespējams noķert visu attēlu ielādes brīdi.
Un šajā situācijā nav risinājuma: nav iespējams palaist ciklu, izmantot tajā asinhronu funkciju, un pēc tam noķert visu cikla funkciju pabeigšanas brīdi. Vai arī jums nav nepieciešams ķert šo brīdi un iepriekš minētais kods jums derēs, vai laipni lūgti callback hell.
Bet nekas, risinājums problēmai ir iespējams, izmantojot promise, ko mēs izpētīsim nākamajās nodarbībās.