⊗jsSpACILL 161 of 294 menu

Асинхронно зареждане на изображения в цикъл в JavaScript

Нека пътищата към изображенията се съхраняват в масив:

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

Можем да заредим тези изображения в цикъл:

for (let path of arr) { loadImage(path, function(image, err) { document.body.append(image); }); }

Кодът се получи хубав и без callback hell, обаче, се върнахме към двата ни проблема: редът на изображенията не е гарантиран и е невъзможно да се улови моментът на зареждане на всички изображения.

И няма решение в тази ситуация: невъзможно е да се стартира цикъл, да се използва асинхронна функция в него и след това да се улови моментът на завършване на всички функции от цикъла. Или на вас не ви трябва да хванете този момент и горният код ще ви подхожда, или добре дошли в callback hell.

Но не трябва да се отчайвате - решението на проблема е възможно чрез промиси (promises), които ще изучаваме в следващите уроци.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне