Asinhronā rezultāta nodošana atpakaļizsaukumā JavaScript
Lai tagad asinhronā operācija pēc savas pabeigšanas neko neizvada konsolē, bet iegūst kādu rezultātu. Lai tas būtu massīvs ar datiem, kurš, piemēram, varēja būt iegūts ar AJAX. Bet tā kā ar AJAX mēs pagaidām strādāt neprotam, tad vienkārši to imitēsim:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // massīvs ar rezultātu
}, 3000);
}
Padarīsim tā, lai massīvs ar rezultātu tiktu nodots atpakaļizsaukuma parametram:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // nododam rezultātu kā parametru
}, 3000);
}
Tagad, nododot atpakaļizsaukumu funkcijas izsaukumā
make mēs varam tajā uzrakstīt parametru
- un šajā parametrā nonāks asinhronās
operācijas rezultāts:
make(function(res) {
console.log(res); // mūsu massīvs
});
Pabeidziet atpakaļizsaukuma kodu tā, lai tas atrastu massīva elementu summu ar rezultātu.