Promise.js: Acemi Dostu Bir Rehber
Merhaba! Ben Fatih Soysal ve bugün size JavaScript’in güçlü bir özelliği olan Promise.js’i basit bir şekilde anlatacağım. Asenkron işlemleri yönetmek için olmazsa olmaz bir araçtır. Öncelikle, asenkron işlemlerin ne olduğunu anlayalım.
Asenkron İşlemler Nedir?
Asenkron işlemler, hemen sonuçlanmayan işlemlerdir. Örneğin, bir web sayfasından veri çekmek, bir dosyayı okumak veya bir ağ isteği göndermek asenkron işlemlerdir. Bu işlemler tamamlanana kadar programın diğer bölümlerinin çalışmasını engellememesi önemlidir. İşte bu noktada Promise.js devreye girer.
Promise.js’e Giriş
Promise, bir işlemin başarılı olup olmadığını ve sonucunu temsil eden bir nesnedir. Başka bir deyişle, bir Promise üç durumdan birinde olabilir:
- Pending (Beklemede): İşlem henüz tamamlanmadı.
- Fulfilled (Tamamlandı): İşlem başarılı bir şekilde tamamlandı ve bir sonuç döndürdü.
- Rejected (Reddedildi): İşlem başarısız oldu ve bir hata oluştu.
Bir Promise oluşturmak için new Promise() yapısını kullanırız. Bu yapı, bir fonksiyon alır. Bu fonksiyonun iki parametresi vardır: resolve ve reject.
const myPromise = new Promise((resolve, reject) => {
// Asenkron işlem burada gerçekleşir.
setTimeout(() => {
const success = true; // İşlem başarılı mı?
if (success) {
resolve("İşlem başarılı!"); // resolve ile başarılı sonuç döndürülür.
} else {
reject("İşlem başarısız!"); // reject ile hata döndürülür.
}
}, 2000); // 2 saniye bekle
});
.then(), .catch() ve .finally() Metotları
Promise’in sonucunu işlemek için .then() metodunu kullanırız. .then() metodu, resolve fonksiyonu çağrıldığında çalışır. Eğer bir hata oluşursa .catch() metodu devreye girer. .finally() metodu ise, işlem başarılı veya başarısız olsun her durumda çalışır.
myPromise
.then(result => {
console.log(result); // "İşlem başarılı!" yazdırır.
})
.catch(error => {
console.error(error); // Hata mesajını yazdırır.
})
.finally(() => {
console.log("İşlem tamamlandı!"); // Her durumda çalışır.
});
Async/Await
Promise’leri daha temiz ve okunabilir bir şekilde yönetmek için async/await sözdizimi kullanılabilir. async anahtar kelimesi, bir fonksiyonu asenkron hale getirirken, await anahtar kelimesi bir Promise’in çözümlenmesini bekler.
async function myAsyncFunction() {
try {
const result = await myPromise;
console.log(result);
} catch (error) {
console.error(error);
} finally {
console.log("İşlem tamamlandı!");
}
}
myAsyncFunction();
Umarım bu makale size Promise.js’i anlamanızda yardımcı olmuştur. Daha fazla bilgi için fatihsoysal.com sitesini ziyaret edebilirsiniz. Ayrıca, konuyla ilgili daha detaylı bilgi için MDN Web Docs sayfasını inceleyebilirsiniz.
Bu makalede, Promise.js’in temel kavramlarını açıkladım. Ancak, Promise.js’in çok daha gelişmiş kullanım alanları vardır. Bu konuda daha fazla araştırma yaparak, kendinizi bu alanda geliştirebilirsiniz. Başarılar!
#Etiketler: #Promise.js, #JavaScript, #AsenkronProgramlama, #Promise, #then, #catch, #finally, #async, #await, #öğretici, #rehber
