Özet - async/await
async/await kullanarak sırayla iki API'den veri çekip birleştiren bir akış yazarsın.
async/await özeti
async/await, promise tabanlı asenkron kodu senkron görünümlü hale getirir. async fonksiyon her zaman bir promise döndürür; await bir promise'in sonucunu bekler. Hatalar try/catch ile yakalanır; bağımsız işlemler Promise.all ile paralel yürütülür; asenkron iterable'lar for await...of ile gezilir.
Bu özette hepsini birleştiren bir akış yazacaksın: önce sırayla iki API çağrısı yapacaksın, sonra paralel iki veriyi yükleyeceksin.
Uygulama Sıralı iki API çağrısı
async function loadProfile() yaz. İçinde try bloğunda await ile önce fetchUser()'ı user değişkenine, sonra fetchPosts(user.id)'i posts değişkenine ata. Bir catch (err) bloğu ekle ve console.error(err) ile hatayı yazdır.
Örnek çözümü göster
async function loadProfile() {
try {
const user = await fetchUser();
const posts = await fetchPosts(user.id);
} catch (err) {
console.error(err);
}
}
Uygulama Paralel veri yükle
async function loadParallel() yaz. İçinde await Promise.all([fetchProfile(), fetchSettings()]) çağırıp sonucu [profile, settings] olarak destructuring ile al.
Örnek çözümü göster
async function loadParallel() {
const [profile, settings] = await Promise.all([
fetchProfile(),
fetchSettings()
]);
}
Kendini test et
-
async/await kavramlarını eşleştir
- async function
- her zaman promise döndürür
- await
- promise sonucunu bekler
- try/catch
- asenkron hatayı yakalar
- Promise.all
- paralel yürütme sağlar
- for await...of
- async iterable'ı gezer
-
Hangisi en hızlı yöntem?
// A: sıralı const a = await p1(); const b = await p2(); // B: paralel const [a, b] = await Promise.all([p1(), p2()]);- B seçeneği daha hızlıdır
- A seçeneği daha hızlıdır
- İkisi de eşit sürede biter
- Süre promise'lara bağlı değildir
Cevabı göster
B seçeneği daha hızlıdır — Doğru! Paralel yürütme, bağımsız işlemlerde toplam süreyi kısaltır.