Kodkitabi

Async/Await

Modern asenkron fonksiyonlar ve hata yakalama.

ES8 (2017) ile gelen Async/Await, Promise tabanlı asenkron kodları yazmayı ve okumayı çok daha kolaylaştıran bir sözdizimidir (syntactic sugar).

Bir fonksiyonun başına async anahtar kelimesi eklendiğinde, o fonksiyon artık geriye bir Promise döndürür. Fonksiyonun içinde uzun sürecek Promise işlemlerinin başına await eklenerek işlemin çözümlenmesi beklenir. Hata yönetimi ise klasik try-catch bloklarıyla yapılır.

Async/Await Fonksiyonu ve Hata Kontrolü
// Önceki dersten aldığımız fetchUserData fonksiyonunu kullanıyoruz
const fetchUserData = (isSuccessful) => {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            if (isSuccessful) {
                resolve({ username: "can123", email: "can@mail.com" });
            } else {
                reject("Veri çekilemedi, bağlantı hatası!");
            }
        }, 1000);
    });
};

// async fonksiyon tanımlama
async function getUserProfile() {
    try {
        console.log("İstek başlatılıyor...");
        // await ile Promise'in çözümlenmesini bekliyoruz
        const user = await fetchUserData(true);
        console.log("Kullanıcı Profil Bilgisi:", user.username);
    } catch (error) {
        // reject edilen hatalar buradaki catch bloğuna düşer
        console.error("Hata yakalandı:", error);
    }
}

// Fonksiyonu çağırma
getUserProfile();