JavaScriptда коллбэк орқали асинхрон натижани ўтказиш
Энди асинхрон операция ўзи тугаганидан сўнг консолга ҳеч нарса чиқармасин, балким бирор натижа олсин. Бу натижа маълумотлар билан тўлган массив бўлсин, масалан, у AJAX орқали олингани мумкин. Аммо AJAX билан ишлашни ҳали билмаганимиз сабабли, буни оддий симуляция қиламиз:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // натижа массиви
}, 3000);
}
Энди натижа массиви коллбэкнинг параметрига ўтказилишини таъминлаймиз:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // натижани параметр сифатида ўтказамиз
}, 3000);
}
Энди, make функцияси чақириғига коллбэк
ўтказганда, биз унда параметр ёза оламиз
- ва ўша параметрга асинхрон операциянинг
натижаси түшади:
make(function(res) {
console.log(res); // бизнинг массивимиз
});
Коллбэк кодини шундай тузингки, у натижа массиви элементлари йиғиндисини топсин.