Javascript async/await örnek kullanımı

Javascript async/await örnek kullanımı
Time4VPS - VPS hosting in Europe

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 = () => { 
 //Promise nedir diyorsanız: https://medium.com/codefiction/javascriptte-promise-kullan%C4%B1m%C4%B1-ccca1123989a
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
})()
Tarih: