CodeBlanks Logo Icon CodeBlanks

await

await ile promise bekleme öğrenirsin.

await nedir?

await, bir Promise'in sonuçunu bekleyip o değeri veren işleçtir. Yalnızca async işlevlerin içinde (ya da modülün en üst düzeyinde) kullanılabilir. await gördüğünde işlev donmaz; olay kuyruğuna (event loop) dönüş yapar ve sonuç gelince kaldığı yerden devam eder.

async function load() {
  const value = await Promise.resolve("tamam");
  console.log(value);
}

Burada await, Promise.resolve("tamam") sonuçunu bekler ve value değişkenine atar. Bu biçim, zincirli then çağrılarına göre daha okunaklıdır; asenkron kodu sanki senkronmuş gibi yazar gibi yazarsın.

Uygulama Sıra sende: await ile değer al

async function load() tanımla. İşlev içinde const value = await Promise.resolve("merhaba") yaz. console.log(value) ile değeri yazdır. Sonra load() çağrısı yap.

Başlangıç kodu

index.js
// async function load tanımla
// await Promise.resolve ile değeri al, console.log ile yazdır
// en sonda load'u çağır

Örnek çözüm

index.js
async function load() {
  const value = await Promise.resolve("merhaba");
  console.log(value);
}
load();

Beklenen çıktı

merhaba

await ve then farkı

await ile then aynı işi farklı biçimde yapar. then zincir kurarak sonuçu işlerken, await sonuçu bir değişkene atayarak senkron görünümlü kod yazmanı sağlar. İkisi de olay kuyruğunu bloke etmez; yalnızca bekleyen işlevi askıya alır.

// then ile
p.then(v => console.log(v));
// await ile
const v = await p;
console.log(v);

Çoğu durumda await daha okunaklıdır; özellikle birbirine bağlı birden fazla asenkron adım varsa then zinciri iç içe geçebilir. await ile aynı mantığı düz bir akış olarak yazarsın.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Boşluğu doldur: await

Soru
async function load() {
  const value = ____ Promise.resolve("tamam");
  console.log(value);
}
Cevap
async function load() {
  const value = await Promise.resolve("tamam");
  console.log(value);
}

Açıklama: await Promise sonuçunu value'ya atar.

2 await hangi yerde doğrudan KULLANILAMAZ?

  • Bir async function içinde
  • Sıradan bir işlevin içinde Doğru cevap
  • Modülün en üst düzeyinde
  • Bir async arrow function içinde

Açıklama: await yalnızca async bağlamda çalışır.

3 await vs then

Kavram Anlamı
await değeri değişkene atar
then zincir kurar
async await için gereklidir

Başlangıç bölümündeki tüm dersler