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); // биздин массивибиз
});
Коллбэктин кодун ошондой допишите, ал натыйжа массивинин элементтеринин суммасын таба алышы керек.