Asinchrone oordrag van resultaat in 'n callback in JavaScript
Laat die asinchrone operasie nou, na voltooiing, niks in die konsole uitvoer nie, maar 'n sekere resultaat verkry nie. Laat dit 'n skikking met data wees, wat byvoorbeeld via AJAX verkry kon word. Maar aangesien ons nog nie met AJAX kan werk nie, sal ons dit eenvoudig simuleer:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // skikking met resultaat
}, 3000);
}
Laat ons dit so maak dat die skikking met die resultaat oorgedra word na 'n parameter van die callback:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // gee resultaat as parameter oor
}, 3000);
}
Nou, wanneer die callback aan die funksie-oproep
make oorgedra word, kan ons 'n parameter daarin skryf
- en in hierdie parameter sal die resultaat van die asinchrone
operasie beland:
make(function(res) {
console.log(res); // ons skikking
});
Voltooi die callback-kode sodat dit die som van die elemente van die resultaat-skikking vind.