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ı.