Асинхронно предаване на резултат към callback в JavaScript
Нека сега асинхронната операция след завършването си не извежда нищо в конзолата, а получава някакъв резултат. Нека това бъде масив с данни, който, например, може да е получен чрез AJAX. Но тъй като все още не знаем как да работим с AJAX, просто ще симулираме това получаване:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // масив с резултат
}, 3000);
}
Нека направим така, че масивът с резултата да се предава в параметър на callback-а:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // предаваме резултата като параметър
}, 3000);
}
Сега, при предаване на callback-а при извикването на функцията
make можем да напишем в него параметър
- и в този параметър ще попадне резултатът от асинхронната
операция:
make(function(res) {
console.log(res); // нашият масив
});
Допълнете кода на callback-а така, че да намира сумата от елементите на масива с резултата.