Asynkron överföring av resultat till callback i JavaScript
Låt oss nu anta att den asynkrona operationen efter sin avslutning inte skriver ut någonting i konsolen, utan får ett visst resultat. Låt det vara en array med data, som till exempel kunde ha hämtats via AJAX. Men eftersom vi ännu inte kan arbeta med AJAX, så simulerar vi bara detta:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // array med resultat
}, 3000);
}
Låt oss göra så att arrayen med resultatet skickas som en parameter till callback-funktionen:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // skickar resultatet som en parameter
}, 3000);
}
Nu, när vi skickar callback-funktionen till funktionsanropet
make kan vi skriva en parameter i den
- och i denna parameter kommer resultatet av den asynkrona
operationen att hamna:
make(function(res) {
console.log(res); // vår array
});
Komplettera callback-koden så att den hittar summan av elementen i resultatarrayen.