Проблема callback hell у JavaScript-у

Рецимо да желимо да помоћу функције loadImage учитамо три слике:

javascriptloadImage('img1.png', function(image, err) {
  document.body.append(image);
});
loadImage('img2.png', function(image, err) {
  document.body.append(image);
});
loadImage('img3.png', function(image, err) {
  document.body.append(image);
});

Са овим кодом нешто није у реду. Ствар је у томе, да ће слике бити додаване у body како се учитавају. Тј. нико нам не гарантује да ће слике бити додате баш у оном редоследу који нам треба.

Још нешто постоји. Рецимо да желимо да урадимо нешто када буду учитане све три слике. У нашем коду ми једноставно нећемо моћи да ухватимо тај тренутак, јер све три слике се учитавају независно.

Океј, преправимо код:

javascriptloadImage('img1.png', function(image1, err1) {
  document.body.append(image1);
  
  loadImage('img2.png', function(image2, err2) {
    document.body.append(image2);
    
    loadImage('img3.png', function(image3, err3) {
      document.body.append(image3);
      console.log('све слике су учитане');
    });
  });
});

Решили смо оба описана проблема. Међутим, добили смо у замену други. Још није превише видљив, али замислите како ће изгледати наш код, ако у њему буде учитавање не три, већ, рецимо, десет слика, плус ако се дода обрада изузетака. Као резултат, код ће постати екстремно нечитљив: сложеност кода лавинообразно нараста при угнежђености колбекова један у другог. Таква ситуација се зове callback hell - пакао колбекова.

Задание 1

Препишите наведени код тако да у њему буде учитавање 10 слика плус обрада изузетака. Уверите се да вам се добија ситуација callback hell.