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();