Sobes.tech
Middle

Promise-in yaranmasından əvvəl nə istifadə edirdiniz?

sobes.tech Süni İntellekt

AI-dan cavab

Promise-dən əvvəl, callback-lər geniş istifadə olunurdu.

Callback-lərin mahiyyəti:

Bir funksiya başqa bir funksiyaya arqument kimi verilir və müəyyən bir əməliyyat tamamlandıqdan sonra icra olunur.

Nümunə:

// Asinxron əməliyyatı callback ilə çağırma nümunəsi
function fetchData(callback) {
  setTimeout(() => {
    const data = "Bəzi məlumatlar";
    callback(null, data); // Birinci arqument xəta, ikinci nəticə
  }, 1000);
}

fetchData((err, data) => {
  if (err) {
    console.error("Məlumatların alınmasında xəta:", err);
  } else {
    console.log("Qəbul edilən məlumat:", data);
  }
});

Callback-lərdən istifadə etməyin çatışmazlıqları:

  • Callback Hell (Callback Cəhənnəmi): İç-içə yerləşdirilmiş asinxron əməliyyatlar zənciri çox dərin və oxumaq çətin kodlara səbəb olur.
  • Xəta idarəetməsində çətinliklər: Hər səviyyədə xətaların ötürülməsi və yoxlanması lazımdır.
  • Standartlaşmış yanaşmanın olmaması: Müxtəlif kitabxanalar callback üçün müxtəlif razılaşmalar istifadə edə bilər.

Promise-dən əvvəlki yanaşmalar:

Promise-dən əvvəl, saf callback-lərdən başqa, asinxronluğu idarə etmək üçün kitabxanalar və nümunələr istifadə olunurdu, məsələn:

  • Asinxron kitabxanalar: Məsələn, async (Node.js üçün, amma brauzer üçün də istifadə oluna bilər). Asinxron axınları idarə etmək üçün utilitlər təqdim edirdi (paralel icra, ardıcıl icra).
  • Publisher/Subscriber (Pub/Sub) nümunəsi: Daha mürəkkəb qarşılıqlı əlaqə ssenariləri üçün.
  • Hadisə emitterləri: Node.js və brauzer mühitində (məsələn, EventEmitter).

Bununla belə, callback-lər çox sayda asinxron əməliyyat üçün əsas idi. Promise, asinxronluqla işləmək üçün daha strukturlaşdırılmış, vahid və oxunaqlı bir üsul təqdim etdi və çoxsaylı "Callback Hell" problemlərini aradan qaldırdı.