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); // մեր զանգվածը
});
Լրացրեք կոլբեքիի կոդն այնպես, որ այն գտնի արդյունքի զանգվածի տարրերի գումարը: