Asynchroniczne przekazywanie wyniku do callback w JavaScript
Niech teraz operacja asynchroniczna po swoim zakończeniu nie wypisuje nic w konsoli, a uzyskuje pewien wynik. Niech będzie to tablica z danymi, która, na przykład, mogłaby zostać uzyskana przez AJAX. Ale ponieważ z AJAX nie umiemy jeszcze pracować, to po prostu zasymulujemy to uzyskanie:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // tablica z wynikiem
}, 3000);
}
Zrobimy tak, aby tablica z wynikiem była przekazywana w parametrze callback:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // przekazujemy wynik parametrem
}, 3000);
}
Teraz, przy przekazywaniu callback w wywołaniu funkcji
make możemy napisać w nim parametr
- i do tego parametru trafi wynik asynchronicznej
operacji:
make(function(res) {
console.log(res); // nasza tablica
});
Dopisz kod callback tak, aby znajdował sumę elementów tablicy z wynikiem.