Asynkron overføring av resultat til callback i JavaScript
La oss nå anta at den asynkrone operasjonen etter fullføring ikke skriver ut noe til konsollen, men i stedet får et visst resultat. La dette være en matrise med data, som for eksempel kunne ha blitt hentet via AJAX. Men siden vi ennå ikke kan jobbe med AJAX, vil vi bare simulere dette:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // matrise med resultat
}, 3000);
}
La oss sørge for at matrisen med resultatet sendes til en callback-parameter:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // sender resultatet som en parameter
}, 3000);
}
Nå, når vi sender callbacken til funksjonskallet
make, kan vi skrive en parameter i den
- og denne parameteren vil motta resultatet av den asynkrone
operasjonen:
make(function(res) {
console.log(res); // vår matrise
});
Fullfør callback-koden slik at den finner summen av elementene i resultatmatrisen.