Asinchroninis paveikslėlių įkėlimas cikle JavaScript
Tegul paveikslėlių keliai saugomi masyve:
let arr = ['img1.png', 'img2.png', 'img3.png'];
Mes galime įkelti šiuos paveikslėlius cikle:
for (let path of arr) {
loadImage(path, function(image, err) {
document.body.append(image);
});
}
Kodas pasirodė gražus ir be callback hell, tačiau, mes grįžome prie mūsų dviejų problemų: paveikslėlių tvarka negarantuojama ir neįmanoma pagauti visų paveikslėlių įkėlimo momento.
Ir šioje situacijoje sprendimo nėra: neįmanoma paleisti ciklo, naudoti jame asinchroninę funkciją, o po to pagauti visų ciklo funkcijų užbaigimo momentą. Arba jums nereikia gaudyti šio momento ir aukščiau pateiktas kodas jums tiks, arba sveiki atvykę į callback hell.
Tačiau nereikėtų nusiminti - problemos sprendimas įmanomas per promises, kuriuos mes tyrinėsime kitose pamokose.