Asinhroni prenos rezultata v povratni klic v JavaScript
Naj asinhrona operacija po zaključku ne izpiše ničesar v konzolo, ampak dobi nek rezultat. Naj bo to polje s podatki, ki bi ga na primer lahko dobili prek AJAX. Ker pa z AJAX-om še ne znamo delati, bomo to preprosto simulirali:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // polje z rezultatom
}, 3000);
}
Naredimo tako, da se polje z rezultatom posreduje v parameter povratnega klica:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // rezultat posredujemo kot parameter
}, 3000);
}
Zdaj lahko pri posredovanju povratnega klica v klic funkcije
make napišemo v njem parameter
- in v ta parameter bo prišel rezultat asinhrone
operacije:
make(function(res) {
console.log(res); // naše polje
});
Dopolnite kodo povratnega klica tako, da bo našel vsoto elementov polja z rezultatom.