Дар JavaScript ба коллбэк гузаронидани натиҷаи асинхронӣ
Бигзор акнун амалиёти асинхронӣ пас аз анҷом додани худ чизеро ба консоль чоп накунад, балки натиҷае гирад. Бигзор ин массиви бо додаҳо бошад, ки, барои намуна, тавассути AJAX гирифта мешуд. Вале аз он ҷое, ки бо AJAK мо то ҳол кор карданро намеомӯзем, пас танҳо гирифтани онро тақлид мекунем:
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); // массиви мо
});
Рамзи коллбэкро чунон пур кунед, ки ҷамъи унсурҳои массиви бо натиҷаро пайдо кунад.