JavaScript ile async/await nedir ne değildir kısmını zaten işlemiştik. Fetch methodunun asenkron olarak nasıl kullanıldığını örneklediğimiz yazıdan sonra sıra kendi awaitable/beklenebilir fonksyionumuzu nasıl oluşturacağımızı örneklendirmeye geldi.
Beklenebilir fonksiyonumuzu hazırlayalım
window.basari = true;
//bir fonksiyon oluşturalım
let beklenebilirfonksiyon = () => {
return new Promise((resolve, reject) => {
// 4 saniye sonra çalışacak bir kod ayarlayalım
setTimeout(() => {
if(window.basari){
// başarılı durumu temsil eden fonksiyon çağıralım
resolve("beklenebilirfonksiyon çalıştı");
}
else{
// hatalı durumu temsil eden fonksiyon çağıralım
reject("beklenebilirfonksiyon çalışmadı");
}
}, 4000);
});
};
Kullanım metotları
Beklenebilir yada Promise dönen fonksiyonları kullanmak için 2 farklı metot vardır. Bunlar;
1) .then ve .catch metotu ile fonksiyonun başarı yada hata durumlarını bekleyen alt işlemleri kullanmak
Örnek:
beklenebilirfonksiyon().then((yanit) =>{
console.log(yanit); // beklenebilirfonksiyon çalıştı
}).catch((yanit)=>{
console.log(yanit); //beklenebilirfonksiyon çalışmadı
});
2) async olarak ayarlanmış bir scope/kapsam belirterek await anahtar kelimesini kullarak bekletmek
Örnek 1:
async function cagir() {
var yanit = await beklenebilirfonksiyon();
console.log(yanit);
//başarı durumunda (window.basari değişkeni true olduğunda) "beklenebilirfonksiyon çalıştı", hata durumunda "beklenebilirfonksiyon çalışmadı" yazacaktır
}
cagir();
Örnek 2 (Otomatik çalıştırma):
(async ()=>{
var yanit = await beklenebilirfonksiyon()
console.log(yanit)
//başarı durumunda (window.basari değişkeni true olduğunda) "beklenebilirfonksiyon çalıştı", hata durumunda "beklenebilirfonksiyon çalışmadı" yazacaktır
})()