Passagem assíncrona de resultado para callback em JavaScript
Suponha que agora a operação assíncrona, após sua conclusão, não exiba nada no console, mas obtenha algum resultado. Seja este um array com dados, que, por exemplo, poderia ser obtido via AJAX. Mas como ainda não sabemos trabalhar com AJAX, vamos simular essa obtenção:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // array com o resultado
}, 3000);
}
Vamos fazer com que o array com o resultado seja passado para um parâmetro do callback:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // passamos o resultado como parâmetro
}, 3000);
}
Agora, ao passarmos o callback na chamada da função
make, podemos escrever nele um parâmetro
- e esse parâmetro receberá o resultado da operação
assíncrona:
make(function(res) {
console.log(res); // nosso array
});
Complete o código do callback para que ele encontre a soma dos elementos do array com o resultado.