Asinchroninis paveikslėlių įkėlimas cikle JavaScript

Tegul paveikslėlių keliai saugomi masyve:

javascriptlet arr = ['img1.png', 'img2.png', 'img3.png'];

Mes galime įkelti šiuos paveikslėlius cikle:

javascriptfor (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.