Асинхроно прослеђивање резултата у колбек у 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); // наш низ
});
Допуните код колбека тако да пронађе збир елемената низа са резултатом.