Sobes.tech
Middle

Promise paydo bo'lishidan oldin nima ishlatgansiz?

sobes.tech AI

AIdan javob

Promisedan oldin, callbacklar keng tarqalgan edi.

Callbacklarning mohiyati:

Bir funktsiya boshqa funktsiyaga argument sifatida o'tkaziladi va ma'lum bir operatsiya tugagach bajariladi.

Misol:

// Asinxron operatsiyani callback bilan chaqirish misoli
function fetchData(callback) {
  setTimeout(() => {
    const data = "Ba'zi ma'lumotlar";
    callback(null, data); // Birinchi argument xato, ikkinchisi natija
  }, 1000);
}

fetchData((err, data) => {
  if (err) {
    console.error("Ma'lumotlarni olishda xato:", err);
  } else {
    console.log("Qabul qilingan ma'lumot:", data);
  }
});

Callbacklardan foydalanishning kamchiliklari:

  • Callback Hell (Callbacklar do'zaxi): Ichma-ich joylashtirilgan asinxron operatsiyalar ketma-ketligi juda chuqur va o'qilishi qiyin kodga olib keladi.
  • Xatolarni boshqarish qiyinchiliklari: Har bir darajadagi xatolarni o'tkazish va tekshirish zarur.
  • Standartlashtirilgan yondashuvning yo'qligi: Turli kutubxonalar callback uchun turli kelishuvlarni ishlatishi mumkin edi.

Promisedan oldingi yondashuvlar:

Promisedan oldin, "sodda" callbacklardan tashqari, asinxronlikni boshqarish uchun kutubxonalar va naqshlar ishlatilardi, masalan:

  • Asinxron kutubxonalar: Masalan, async (Node.js uchun, ammo brauzerda ham ishlatilishi mumkin). Asinxron oqimlarni boshqarish uchun utilitalar taqdim etadi (parallel bajarish, ketma-ket bajarish).
  • Publisher/Subscriber (Pub/Sub) naqshi: Ko'proq murakkab interaktiv vaziyatlar uchun.
  • Voqealar emitterlari: Node.js va brauzer muhitida (masalan, EventEmitter).

Shunga qaramay, callbacklar ko'plab asinxron operatsiyalar uchun asos bo'lib qolgan. Promise asinxronlik bilan ishlash uchun yanada tuzilmalashgan, birlashtirilgan va o'qilishi oson usulni taqdim etdi, bu esa "Callback Hell" muammolarini bartaraf etdi.