Sequential await
- Node.js kursu
- Başlangıç
- Ders 98/116
- 5 dk
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
// 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
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
async function run() {
const a = await Promise.resolve(1);
const b = ____ Promise.resolve(2);
console.log(a + b);
}
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 |