CodeBlanks Logo Icon CodeBlanks

Sequential await

await ile sıralı işlemleri öğrenirsin.

Sequential await nedir?

Birden fazla await çağrısı art arda yazdığında, her biri bir önceki bittikten sonra başlar. Bu sequential await adı verilen sıralı bekleme modelidir; toplam süre her birinin süresinin toplamı kadardır.

async function run() {
  const a = await loadA();
  const b = await loadB();
  console.log(a, b);
}

Burada loadB, ancak loadA bittikten sonra başlar. Eğer loadB loadA'nın sonuçuna bağlıysa bu sıra zorunludur; ama bağımsızlarsa paralel çalıştırarak zaman kazanabilirsin.

Uygulama Sıra sende: sequential await

async function run() tanımla. const a = await Promise.resolve(5) yaz. const b = await Promise.resolve(10) yaz. console.log(a + b) ile toplamı yazdır. run() çağır.

Başlangıç kodu

index.js
// async function run tanımla
// iki await Promise.resolve çağrısı yap, console.log ile toplamı yazdır
// en sonda run'u çağır

Örnek çözüm

index.js
async function run() {
  const a = await Promise.resolve(5);
  const b = await Promise.resolve(10);
  console.log(a + b);
}
run();

Beklenen çıktı

15

Ne zaman sequential?

Sequential await, bir işlemin sonuçu sonrakine bağlanıyorsa zorunludur. Örneğin, önce kullanıcı kimliğini alıp sonra o kimlikle profil çekiyorsan, ikinci çağrı birincinin sonuçuna ihtiyaç duyar; bu durumda paralel çalıştıramazsın.

const user = await getUser();
const profile = await getProfile(user.id);

Ama bağımsız işler paralel çalıştırılırsa toplam süre kısalır. Kararı verirken soru: İkinci iş birincinin sonuçuna ihtiyaç duyuyor mu? Cevap evetse sıralı, hayırsa paralel kullan.

Soru ve cevaplar

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

1 İki bağımsız asenkron iş için sequential await kullanırsan ne olur?

  • Paralel çalışır, daha hızlı biter
  • Sıralı çalışır, toplam süre daha uzun olur Doğru cevap
  • İkisi de atlanır
  • Promise.race başlar

Açıklama: Bağımsız işlerde sequential await zaman kaybettirir.

2 Boşluğu doldur: sıralı await

Soru
async function run() {
  const a = await Promise.resolve(1);
  const b = ____ Promise.resolve(2);
  console.log(a + b);
}
Cevap
async function run() {
  const a = await Promise.resolve(1);
  const b = await Promise.resolve(2);
  console.log(a + b);
}

Açıklama: İkinci await birinciden sonra çalışır.

3 Sequential vs paralel

Kavram Anlamı
sıralı toplam süre uzun
paralel toplam süre kısa
bağımlı sıralı gerekir

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