Transmiterea asincronă a rezultatului în callback în JavaScript
Să presupunem acum că operația asincronă, după finalizare, nu afișează nimic în consolă, ci obține un anumit rezultat. Să fie acesta un tablou cu date care, de exemplu, ar fi putut fi obținut prin AJAX. Dar, deoarece încă nu știm să lucrăm cu AJAX, vom simula acest lucru:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // tablou cu rezultatul
}, 3000);
}
Să facem astfel încât tabloul cu rezultatul să fie transmis într-un parametru al callback-ului:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // transmitem rezultatul ca parametru
}, 3000);
}
Acum, la transmiterea callback-ului în apelul funcției
make putem scrie în el un parametru
- și în acest parametru va intra rezultatul operației
asincrone:
make(function(res) {
console.log(res); // tabloul nostru
});
Completați codul callback-ului astfel încât să găsească suma elementelor tabloului cu rezultatul.