JavaScript Async Await Nedir? Promise Yapısının Kolay Kullanımı

batuhanunalir

👑Tanınmış üye
Yazar
📅Katılım
27 Tem 2025
💬Mesajlar
1,002
🎭Tepki puanı
148
🏆kupalar
63
🌟Puan
602
💵Bakiye
0TL

JavaScript Async Await Nedir? Promise Yapısının Kolay Kullanımı​

JavaScript'te asenkron işlemler, web uygulamalarının bekleme gerektiren görevleri yönetmesini sağlar. Sunucudan veri almak, kullanıcı bilgilerini kaydetmek veya farklı servislerle iletişim kurmak bu işlemlere örnek gösterilebilir. Promise yapısı asenkron süreçleri yönetmek için önemli bir çözüm sunarken uzun işlem zincirleri bazı durumlarda kodun okunmasını zorlaştırabilir.

Async ve await, Promise tabanlı işlemleri daha anlaşılır bir sözdizimiyle yönetmeyi sağlayan JavaScript özellikleridir. Bu yapılar sayesinde asenkron kod, birçok durumda normal işlem sırasına benzer biçimde yazılabilir.

Async Await Nedir?​

Async await, JavaScript'te Promise tabanlı asenkron işlemleri yönetmek için kullanılan bir sözdizimi yaklaşımıdır.

Async anahtar kelimesi bir fonksiyonun asenkron çalışacağını belirtir. Await ise bir Promise sonucunun elde edilmesini beklemek için kullanılır.

Bu yapı, özellikle birden fazla asenkron işlemin sırayla gerçekleştirilmesi gereken durumlarda kodun daha okunabilir olmasını sağlar.

Async await, Promise sisteminin yerine geçen farklı bir mekanizma değildir. Aslında Promise yapısını daha kolay kullanmaya yardımcı olan bir sözdizimi sunar.

Async Anahtar Kelimesi​

Async, bir fonksiyonun asenkron olarak tanımlanmasını sağlar.

Async ile tanımlanan fonksiyonlar her zaman Promise döndürür. Fonksiyon içerisinde doğrudan normal bir değer döndürülse bile bu değer Promise ile temsil edilir.

Bu özellik, async fonksiyonların diğer Promise tabanlı işlemlerle kolayca birlikte kullanılmasını sağlar.

Async fonksiyonlar içerisinde await kullanılabilir. Ancak await yalnızca uygun JavaScript bağlamlarında kullanılabilir. Güncel JavaScript sürümlerinde modül seviyesinde de belirli koşullar altında await kullanımına izin verilir.

Await Anahtar Kelimesi​

Await, bir Promise işleminin sonucunu beklemek için kullanılır.

Örneğin bir web uygulaması sunucudan kullanıcı bilgilerini almak istediğinde ilgili istek başlatılır. Await kullanıldığında, fonksiyonun devamındaki işlemler Promise sonuçlanana kadar bekletilir.

Burada önemli nokta, await kullanımının bütün JavaScript uygulamasını durdurmamasıdır. Yalnızca ilgili async fonksiyonun devamı beklerken JavaScript çalışma ortamı diğer işlerini sürdürebilir.

Bu özellik, asenkron programlamanın temel avantajlarından biridir.

Async Await ile Promise Arasındaki İlişki​

Async await ve Promise birbirinden bağımsız iki sistem değildir. Async await, Promise işlemlerinin daha sade şekilde yazılmasını sağlar.

Then ve catch zincirleriyle gerçekleştirilebilen birçok işlem, async await kullanılarak daha doğrusal bir yapıda ifade edilebilir.

Örneğin önce bir API isteği başlatılması, ardından yanıtın işlenmesi ve son olarak verilerin ekrana aktarılması gereken bir süreç düşünelim. Async await sayesinde bu aşamalar sıralı ve anlaşılır biçimde düzenlenebilir.

Bununla birlikte async await kullanıldığında da işlemin başarı veya başarısız olabileceği unutulmamalıdır.

Try Catch ile Hata Yönetimi​

Async await kullanılan işlemlerde hata yönetimi için try catch yapısı sıklıkla tercih edilir.

Try bloğu içerisinde asenkron işlemler gerçekleştirilir. İşlem sırasında hata oluşursa ilgili hata catch bölümünde yakalanabilir.

Örneğin sunucu isteği başarısız olduğunda kullanıcıya uygun bir mesaj gösterilebilir. Geliştirici de hatanın nedenini inceleyerek gerekli düzenlemeleri yapabilir.

Bu yaklaşım, Promise zincirlerinde kullanılan catch metoduna benzer bir görev üstlenir.

Finally Kullanımı​

Try catch yapısına finally bölümü de eklenebilir. Finally, işlem başarılı veya başarısız olduğunda çalıştırılacak kodları içerir.

Örneğin bir veri isteği sırasında ekranda yükleniyor göstergesi sunuluyorsa işlem tamamlandığında bu göstergenin kaldırılması gerekir.

Finally bölümü, sonuçtan bağımsız olarak yapılması gereken temizlik işlemlerinin tek yerde yönetilmesini sağlar.

Birden Fazla Await Kullanımı​

Bir fonksiyon içerisinde birden fazla await ifadesi kullanılabilir. Bu ifadeler, birbirine bağlı asenkron işlemlerin sıralı şekilde gerçekleştirilmesini sağlar.

Örneğin önce kullanıcı bilgileri alınabilir. Kullanıcı bilgileri geldikten sonra bu kullanıcıya ait siparişleri getiren başka bir istek başlatılabilir.

İkinci işlem birinci işlemin sonucuna bağlı olduğu için await ifadelerinin sıralı kullanılması mantıklıdır.

Ancak birbirinden bağımsız işlemlerin gereksiz yere sırayla bekletilmesi toplam işlem süresini artırabilir.

Promise.all ile Birlikte Kullanım​

Birden fazla asenkron işlem birbirinden bağımsızsa bunların birlikte başlatılması daha verimli olabilir.

Promise.all, farklı Promise işlemlerinin birlikte takip edilmesini sağlar. Async await ile kullanıldığında bütün işlemlerin tamamlanması tek bir aşamada beklenebilir.

Örneğin bir sayfanın açılması için kullanıcı bilgileri, ürün listesi ve bildirimlerin aynı anda alınması gerekiyorsa bu yöntem tercih edilebilir.

Bu yaklaşım, bağımsız isteklerin sırayla beklenmesinden kaynaklanan zaman kaybını azaltabilir.

Async Await Kullanırken Yapılan Hatalar​

En sık karşılaşılan hatalardan biri await ifadesinin yalnızca belirli bağlamlarda kullanılabileceğinin unutulmasıdır. Await kullanılması gereken fonksiyonun async olarak tanımlanması gerekebilir.

Bir diğer hata ise asenkron işlemin sonucunun beklenmeden kullanılmaya çalışılmasıdır. Promise tamamlanmadan elde edilen değer beklenen veri olmayabilir.

Hata yönetiminin yapılmaması da önemli sorunlardan biridir. Ağ bağlantısı veya sunucu kaynaklı problemler uygulamanın beklenmeyen şekilde davranmasına neden olabilir.

Ayrıca birbirinden bağımsız işlemlerin gereksiz yere sırayla bekletilmesi performansı düşürebilir. Bu nedenle işlemler arasındaki bağımlılık doğru değerlendirilmelidir.

Async Await ve Kullanıcı Deneyimi​

Async await, kullanıcı deneyimini doğrudan geliştiren bir arayüz özelliği değildir. Ancak asenkron işlemlerin daha düzenli yönetilmesine yardımcı olur.

Örneğin veri yüklenirken kullanıcıya yükleniyor mesajı gösterilebilir. İşlem tamamlandığında içerik ekrana aktarılabilir. Hata oluştuğunda ise kullanıcıya yeniden deneme seçeneği sunulabilir.

Bu tür durumların yönetilmesi, web uygulamasının daha anlaşılır ve güvenilir görünmesini sağlar.

Async Await Nerelerde Kullanılır?​

Async await; API istekleri, veri yükleme, kullanıcı işlemleri, dosya yönetimi ve farklı asenkron servislerle iletişim gibi alanlarda kullanılır.

Modern JavaScript projelerinde oldukça yaygın olan bu yapı, Promise mantığını anlamış geliştiricilerin kodlarını daha düzenli hale getirmesine yardımcı olur. Async await ile birlikte try catch ve Promise.all gibi araçları öğrenmek, asenkron programlama becerisini geliştirir.
 

Benzer konular

Günün trendleri

Geri