Ana içeriğe geç

Promise

Söz

Okunuşu
promis
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/promise

Kısaca

Promise, asenkron bir işlemin nihai sonucunu temsil eden bir nesnedir; iş bittiğinde kodun başarıya ya da hataya tepki vermesini sağlar.

Promise nedir?

Promise, bir ağ isteğinin yanıtı gibi henüz elde olmayan bir değerin yer tutucusudur. Beklerken programı bloke etmek yerine asenkron bir fonksiyon hemen bir promise döndürür. Kodunuz da sonuç geldiğinde ya da bir şeyler ters gittiğinde çalışacak işleyiciler ekler.

Bir promise her zaman üç durumdan birindedir: pending (hâlâ bekliyor), fulfilled (bir değerle başarıyla tamamlandı) ya da rejected (bir hatayla başarısız oldu). Fulfilled ya da rejected olduğunda settled (sonuçlanmış) denir ve durumu bir daha asla değişmez. Sonuca, başarı için .then(), hatalar için .catch() ve temizlik için .finally() ile tepki verirsiniz.

Bir restoranda sipariş verdiğinizde size verilen çağrı cihazı promise için iyi bir benzetmedir. Yemeğiniz değildir, ama siparişiniz hazır olduğunda ya da bir sorun çıktığında haber alacağınızı garanti eder. Promise'lar JavaScript'e yerleşiktir ve fetch gibi modern API'ler tarafından döndürülür; diğer dillerde future veya task adı verilen benzer kavramlar bulunur.

Promise'lar, asenkron JavaScript yazmada derin iç içe callback'lerin yerini alarak standart yol hâline geldi. async/await sözdizimi promise'ların üzerine kuruludur: async bir fonksiyon her zaman bir promise döndürür ve await, bir promise sonuçlanana dek o fonksiyonu duraklatır.

Önemli noktalar

  • Promise, gelecekte elde edilecek bir değeri temsil eder.
  • Önce pending durumda başlar, sonra bir değerle fulfilled ya da bir hatayla rejected olur.
  • Sonucu yönetmek için .then(), .catch() ve .finally() kullanılır.
  • Promise.all gibi yardımcılar, paralel çalışan birkaç asenkron işlemi bekler.
  • async/await, promise'ların üzerine kurulu daha okunaklı bir sözdizimidir.

Örnek

Promise kullanmak ve oluşturmakjavascript
// fetch returns a promise that resolves to a response
fetch("https://api.example.com/users/42")
  .then((response) => response.json()) // runs on success
  .then((user) => console.log(user.name))
  .catch((error) => console.error("Request failed:", error))
  .finally(() => console.log("Done"));

// Creating your own promise that resolves after a delay
const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
wait(500).then(() => console.log("Half a second later"));

Sık sorulan sorular

Bir promise'ın üç durumu nedir?

Bir promise, işlem sürerken pending, işlem bir değerle başarıyla bittiğinde fulfilled, bir hatayla başarısız olduğunda ise rejected durumundadır. Fulfilled ya da rejected olduğunda settled olur ve artık değişemez.

Promise ile async/await arasındaki fark nedir?

Bunlar birbirinin alternatifi değildir: async/await, promise'ların üzerine kurulu bir sözdizimidir. Promise tabanlı kodu normal, adım adım okunan kod gibi yazmanızı sağlar; hatalar için .catch() yerine try/catch kullanılır.

Promise.all ile Promise.allSettled arasındaki fark nedir?

Promise.all, tüm promise'ların başarılı olmasını bekler ve bunlardan herhangi biri başarısız olur olmaz reddedilir. Promise.allSettled ise hepsinin bitmesini bekler ve başarılı ya da başarısız her sonucu raporlar.

Sık karşılaştırılanlar

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar