Asinchrone laai van prente in 'n lus in JavaScript
Laat die paaie na die prente in 'n array gestoor word:
let arr = ['img1.png', 'img2.png', 'img3.png'];
Ons kan hierdie prente in 'n lus laai:
for (let path of arr) {
loadImage(path, function(image, err) {
document.body.append(image);
});
}
Die kode het mooi gelyk en sonder callback hell, maar ons het teruggekeer na ons twee probleme: die volgorde van die prente is nie gewaarborg nie en dit is onmoontlik om die oomblik te vang wanneer al die prente gelaai is.
En daar is geen oplossing in hierdie situasie nie: dit is onmoontlik om 'n lus te begin, 'n asinchrone funksie daarbinne te gebruik, en dan die oomblik te vang wanneer al die funksies van die lus voltooi is. Of jy het nie daardie oomblik nodig nie en die bogenoemde kode sal vir jou werk, of welkom in callback hell.
Maar moenie ontsteld wees nie - die oplossing vir die probleem is moontlik deur beloftes (promises), wat ons sal bestudeer in die volgende lesse.