Асинхроно вчитување на слики во циклус во JavaScript

Нека патеките до сликите се чуваат во низа:

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

Можеме да ги вчитаме овие слики во циклус:

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

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

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

Но, не треба да се обесхрабрувате - решението на проблемот е возможно преку promises, кои ќе ги учиме во следните лекции.