Callbacks ve Promises
Asenkron işlemler, Callbacks ve Promise yapısı.
JavaScript tek iş parçacıklı (single-threaded) bir dildir ve işlemleri sırayla yürütür. Ancak veritabanı sorguları veya API istekleri gibi zaman alan işlemlerin uygulamayı dondurmaması için asenkron (asynchronous) çalışma modelini kullanır.
Eski callback yöntemlerinin yarattığı "Callback Hell" (geri çağırım karmaşası) sorununu çözmek için Promise yapısı geliştirilmiştir. Bir Promise; işlem başarılı olduğunda resolve, başarısız olduğunda ise reject durumuna geçen bir sözleşmedir.
Promise Oluşturma, Then ve Catch Yapısı
// Simüle edilmiş asenkron veri getirme fonksiyonu
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ı!");
}
}, 1500); // 1.5 saniye gecikme
});
};
// Promise kullanımı (Başarılı senaryo)
fetchUserData(true)
.then(data => {
console.log("Gelen Veri:", data);
})
.catch(error => {
console.error("Hata:", error);
});