JavaScript Callback Funksiyalar
"Callback" (qayta chaqiruv) — bu boshqa funksiyaga argument sifatida uzatilgan funksiyadir.
Ketma-ketlikni boshqarish
JavaScript kodlari odatda yuqoridan pastga qarab tartib bilan bajariladi. Lekin ba'zan biz bir funksiya bajarilmaguncha boshqasi ishga tushmasligini xohlaymiz.
Misol: Oddiy ketma-ketlik
function myFirst() {
myDisplayer('Salom')
}
function mySecond() {
myDisplayer('Xayr')
}
myFirst()
mySecond()
// Natija: "Salom", keyin "Xayr"Callback funksiyalar nima uchun kerak?
Callback funksiyalar sizga bir funksiya bajarilib bo'lgandan keyin boshqasini chaqirish imkonini beradi. Bu ayniqsa asinxron amallar (masalan, fayl o'qish yoki API-dan ma'lumot olish) uchun juda muhim.
Misol: Callback orqali hisoblash
function myDisplayer(some) {
console.log(some)
}
function myCalculator(num1, num2, myCallback) {
let sum = num1 + num2
myCallback(sum)
}
myCalculator(5, 5, myDisplayer)Yuqoridagi misolda myDisplayer funksiyasi myCalculator funksiyasiga argument (callback) sifatida yuborilmoqda. myCalculator hisob-kitobni tugatgandan so'ng, callback funksiyani chaqiradi.
Asinxron Callback funksiyalar
Callback-ning haqiqiy kuchi asinxron funksiyalarda namoyon bo'ladi. Masalan, setTimeout() funksiyasida biz vaqt tugagach bajariladigan funksiyani callback sifatida beramiz.
Misol
setTimeout(function () {
myFunction('Salom!!!')
}, 3000)
function myFunction(value) {
console.log(value)
}Callback Hell (Callback jannati emas, jahannami)
Agar biz bir callback ichida yana bir callback, uning ichida yana birini ishlataversak, kodimiz o'qishga juda qiyin bo'lib qoladi. Buni dasturchilar "Callback Hell" deb atashadi. Buning yechimi sifatida JavaScript-da Promises va Async/Await tushunchalari kiritilgan (keyingi bo'limlarda o'rganamiz).
