Sobes.tech
Middle

JavaScript'te Promise nasıl çalışır?

sobes.tech yapay zeka

AI'dan gelen yanıt

  • Asenkron bir işlemin olası sonunu (veya hatasını) ve onun sonuç değerini temsil eden nesne.
  • Bir promise durumları:
    • pending: başlangıç durumu, ne tamamlanmış ne de reddedilmiş.
    • fulfilled: işlemin başarıyla tamamlandığını gösterir.
    • rejected: işlemin hata ile sonuçlandığını gösterir.
  • pending durumundan fulfilled veya rejected durumuna geçiş yalnızca bir kez ve geri alınamaz.
  • Yöntemler:
    • .then(onFulfilled, onRejected): iki geri çağrı fonksiyonu alır. İlki (onFulfilled) başarı durumunda çağrılır, ikincisi (onRejected) hata durumunda. Her iki argüman da isteğe bağlıdır. Yeni bir promise döner.
    • .catch(onRejected): .then(null, onRejected) ifadesinin kısaltmasıdır. Hataları işlemek için kullanılır. Yeni bir promise döner.
    • .finally(onFinally): promise sonucu ne olursa olsun çağrılır (başarı veya hata). Kaynakları temizlemek için kullanışlıdır. Yeni bir promise döner.
  • Promise oluşturma:
new Promise((resolve, reject) => {
  // Asenkron işlem
  const success = true;
  if (success) {
    resolve("İşlem başarılı!"); // fulfilled durumuna geçer
  } else {
    reject("Bir şeyler ters gitti..."); // rejected durumuna geçer
  }
});
  • Promise zincirleri: .then(), .catch(), .finally() promise döner, böylece ardışık asenkron işlemler zincirlenebilir.
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Hata:', error));