Sobes.tech
Middle

JavaScript-də Promise necə işləyir?

sobes.tech Süni İntellekt

AI-dan cavab

  • Asinxron əməliyyatın mümkün sonu (və ya uğursuzluğu) və onun nəticə dəyərini təmsil edən obyekt.
  • Promis vəziyyətləri:
    • pending: başlanğıc vəziyyət, nə tamamlanıb, nə də rədd olunub.
    • fulfilled: əməliyyatın uğurla başa çatdığını göstərir.
    • rejected: əməliyyatın xəta ilə başa çatdığını göstərir.
  • pending vəziyyətindən fulfilled və ya rejected vəziyyətinə keçid yalnız bir dəfə və geri dönüşsüzdür.
  • Metodlar:
    • .then(onFulfilled, onRejected): iki callback funksiyası qəbul edir. Birincisi (onFulfilled) uğurda çağırılır, ikincisi (onRejected) xəta baş verdikdə. Hər iki arqument seçimlidir. Yeni promiss qaytarır.
    • .catch(onRejected): .then(null, onRejected) qısaldılmış formasıdır. Xətaların idarə olunması üçün istifadə olunur. Yeni promiss qaytarır.
    • .finally(onFinally): promissin nəticəsindən asılı olmayaraq çağırılır (uğur və ya xəta). Resursların təmizlənməsi üçün faydalıdır. Yeni promiss qaytarır.
  • Promissin yaradılması:
new Promise((resolve, reject) => {
  // Asinxron əməliyyat
  const success = true;
  if (success) {
    resolve("Əməliyyat uğurlu!"); // fulfilled vəziyyətinə keçid
  } else {
    reject("Nəsə səhv getdi..."); // rejected vəziyyətinə keçid
  }
});
  • Promisslərin zəncirlənməsi: .then(), .catch(), .finally() promisslər qaytarır, bu da ardıcıl asinxron əməliyyatların zəncirlərinin qurulmasına imkan verir.
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Xəta:', error));