JavaScript-ში ასინქრონული შედეგის გადაცემა კოლბექში
დავუშვათ, ახლა ასინქრონული ოპერაცია თავისი დასრულების შემდეგ არაფერს არ აჩვენებს კონსოლში, არამედ იღებს გარკვეულ შედეგს. დაე, ეს იყოს მონაცემთა მასივი, რომელიც, მაგალითად, შეიძლებოდა მიეღო AJAX-ის მეშვეობით. მაგრამ რადგან AJAX-თან მუშაობა ჯერ არ ვიცით, უბრალოდ სიმულაცია გავაკეთოთ ამ მიღებას:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // მასივი შედეგით
}, 3000);
}
გავაკეთოთ ისე, რომ მასივი შედეგით გადაეცეს კოლბექის პარამეტრს:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // შედეგს პარამეტრად ვაწვდით
}, 3000);
}
ახლა, კოლბექის გადაცემისას ფუნქციის გამოძახებაში
make ჩვენ შეგვიძლია დავწეროთ მასში პარამეტრი
- და ამ პარამეტრში მოხვდება ასინქრონული
ოპერაციის შედეგი:
make(function(res) {
console.log(res); // ჩვენი მასივი
});
დაწერეთ კოლბექის კოდი ისე, რომ მან იპოვოს მასივის ელემენტების ჯამი შედეგით.