Programlama dünyasında, etkili bir şekilde asenkron işlemleri yönetmek, ilgili bir kullanıcı deneyimi sağlamak için önemlidir. Özellikle JavaScript içerisinde bunu yapmanın birçok yolu vardır. Asenkron işlemlerle çalışmanın en popüler yöntemlerinden biri, async/await yapısıdır. Bu yapı, asenkron programlamayı daha net ve okunabilir hale getirmenizi sağlayan bir sözdizimsel kolaylık sunar. Bu kılavuzda, async ve await’in temellerini öğrenelim ve bunların kodlamanızı nasıl geliştirebileceğini inceleyelim.
En önemli bulgular
- async/await, asenkron işlemleri yönetmek için açık ve daha basit bir sözdizimi sağlar.
- await anahtar kelimesini kullanan her fonksiyon, async olarak tanımlanmalıdır.
- await, kod yürütülmeden önce bir Promise'in yerine getirilmesini etkili bir şekilde bekler.
- Hata yönetimi try/catch blokları ile zarif bir şekilde uygulanabilir.
Aşama Aşama Kılavuz
Öncelikle, async/await'in üzerine inşa edildiği Promise'lerin temellerini anladığınızdan emin olmalısınız. Eğer Promise'lerle tanıdık iseniz, şimdi async/await'in kullanımını tartışabiliriz.
Aşama 1: Bir Delay Fonksiyonu Oluşturma
Bir gecikmeyi simüle eden bir Promise döndüren basit bir fonksiyonla başlayın. İşte delay adında bir fonksiyon için bir örnek.
Bu temel bir uygulamadır. Bu fonksiyon ile milisaniye cinsinden bir gecikme belirtebilirsiniz.

Aşama 2: Async ve Await’in Tanıtımı
Artık async/await'in avantajlarından yararlanmak istiyorsunuz. Async anahtar kelimesini kullanan bir fonksiyon oluşturarak başlayın.
Bu kod parçacığında, runDelay fonksiyonu async anahtar kelimesini kullanıyor, bu da onu await kullanma yeteneği kazandırıyor. Bu, delay fonksiyonundan dönen Promise yerine getirilene kadar fonksiyonun yürütülmesinin durdurulacağı anlamına gelir.
Aşama 3: Asenkron Fonksiyonun Test Edilmesi
Çalışma mantığını test etmek için runDelay fonksiyonunu çağırın.
Script'i çalıştırdığınızda, konsolun "Gecikme başlıyor..." yazdığını, ardından 2 saniye durakladığını ve sonunda "Gecikme sona erdi." mesajını gösterdiğini göreceksiniz.
Aşama 4: Try/Catch ile Hata Yönetimi
Programlamada sıkça yaşanan bir durumdur - hatalar her zaman ortaya çıkabilir. Async/await ile hataları try/catch kullanarak daha kolay yönetebilirsiniz.
Hataları yakalamak isterseniz, runDelay fonksiyonunu aşağıdaki gibi değiştirebilirsiniz:
Try/catch kullanarak, await delay(2000) ifadesinin yürütülmesi sırasında meydana gelebilecek herhangi bir hata yakalanabilir ve görüntülenebilir.

Aşama 5: Async/await ile Fetch Kullanımı
Diğer bir yaygın kullanım durumu, fetch API'si ile veri çekmektir.
Bu örnekte, fetch ile bir ağ isteği yapılır. Yeniden, await ile yanıtı bekleyerek devam etmeden önce emin olabiliriz.
Özet - Async ve Await: Aşama Aşama Kılavuz
Bu kılavuzda, JavaScript'te async/await yapısını kullanarak asenkron işlemleri daha net bir şekilde yönetmeyi öğrendiniz. Gecikme fonksiyonu oluşturmayı, hataları nasıl yöneteceğinizi ve verileri fetch API'si ile verimli bir şekilde nasıl çekebileceğinizi gördünüz.
Bu sözdizimini gelecekteki projelerinizde kullanarak kodunuza okunabilirlik ve bakım kolaylığı kazandırın!
Sıkça Sorulan Sorular
Async ve await arasındaki fark nedir?Async, bir fonksiyonu asenkron olarak işaretler, bu da onun Promise döndüreceği anlamına gelir. Await, bir Promise'in sonucunu beklemek için kullanılır.
Ne zaman async/await kullanmalıyım?Asenkron işlemlerle çalışıyorsanız ve kodunuzun net ve okunabilir kalmasını istiyorsanız kullanın.
Async/await'i her tarayıcıda kullanabilir miyim?Evet, ancak kullanılan tarayıcının modern JavaScript sözdizimini desteklediğinden emin olun. Gerekirse Babel gibi transpilerlar kullanılabilir.
Await'i normal bir fonksiyonda kullanabilir miyim?Hayır, await kullanmak için, kullanıldığı fonksiyonun async olarak tanımlanması gerekir.
Bir Promise başarısız olursa ne olur?Bir Promise başarısız olursa, try/catch ile ele alabileceğiniz bir hata mesajı tetiklenir.