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-ში.
მაგრამ, ნუ დაიმწუხრებთ - პრობლემის გადაწყვეტა შესაძლებელია პრომისების მეშვეობით, რომლებსაც ჩვენ შევისწავლით შემდეგ გაკვეთილებში.