Asynchrone overdracht van resultaat naar callback in JavaScript
Stel dat de asynchrone operatie na voltooiing niets naar de console uitvoert, maar een bepaald resultaat oplevert. Stel dat dit een array met data is, die bijvoorbeeld verkregen zou kunnen zijn via AJAX. Maar aangezien we nog niet met AJAX kunnen werken, simuleren we dit eenvoudigweg:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // array met resultaat
}, 3000);
}
Laten we ervoor zorgen dat de array met het resultaat wordt doorgegeven aan een parameter van de callback:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // geven het resultaat door als parameter
}, 3000);
}
Nu, bij het doorgeven van de callback aan de aanroep van de functie
make kunnen we er een parameter in schrijven
- en in deze parameter komt het resultaat van de asynchrone
operatie terecht:
make(function(res) {
console.log(res); // onze array
});
Vul de code van de callback aan, zodat deze de som van de elementen van de array met het resultaat vindt.