Asinchroninio rezultato perdavimas atgalinio kvietimo funkcijoje JavaScript
Tegu dabar asinchroninė operacija po savo užbaigimo nieko neišveda į konsolę, o gauna tam tikrą rezultatą. Tegui tai yra masyvas su duomenimis, kuris, pavyzdžiui, galėjo būti gautas per AJAX. Bet kadangi su AJAX mes dar nemokame dirbti, tai tiesiog imitijuosime šį gavimą:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // masyvas su rezultatu
}, 3000);
}
Padarykime taip, kad masyvas su rezultatu būtų perduodamas į atgalinio kvietimo funkcijos parametrą:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // perduodame rezultatą parametru
}, 3000);
}
Dabar, perduodant atgalinio kvietimo funkciją funkcijos
make iškvietime, mes galime jai parašyti parametrą
- ir į šį parametrą pateks asinchroninės
operacijos rezultatas:
make(function(res) {
console.log(res); // mūsų masyvas
});
Parašykite atgalinio kvietimo funkcijos kodą taip, kad jis rastų masyvo elementų su rezultatu sumą.