# Promise (Söz)

Adres: https://softwaredictionary.org/tr/terimler/promise
Kategori: Programlamanın Temelleri
Son güncelleme: 2026-09-29
Okunuşu: promis

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şturmak

```javascript
// 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.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
