JavaScript Promise ve Async/Await Kullanımı: JavaScript'te Promise ve Async/Await yöntemleri ile nasıl daha iyi kodlar yazabilirsiniz? Bu makalede tüm detayları öğrenebilirsiniz
JavaScript, web uygulama geliştirme konusunda en çok kullanılan programlama dillerinden biridir. Bu dilde Promise’ler ve Async/Await teknolojileri gibi, async-ronous çalışmaya izin veren teknikler kullanılır. Bu teknikler, asenkron işlemler sırasında beklememize gerek kalmadan, işlemlerin tamamlanmasını beklememizi sağlar.
Promise’ler, JavaScript’te en önemli konulardan biridir. Bir işlemin ne zaman tamamlanacağını beklemek yerine, bu işlemin tamamlanması sonrasında belirli bir işlemin yapılmasını sağlarlar. Bununla birlikte, Async/Await, Promise’lerle birlikte kullanılabilecek daha new-age bir teknolojidir. Async/Await, asenkron işlemler esnasında daha performanslı bir çalışma şansı verir. Bu teknolojiler, web uygulamalarının performansını arttırmak ve daha iyi bir kullanıcı deneyimi sağlamak için kullanılırlar.
Promises Nedir?
JavaScript'te Promise'ler, asenkron işlemleri yönetmek için kullanılan bir yapıdır. Bir işlem tamamlandığında bize geri dönüş değeri döndürür ve hata yakalama yeteneği sağlar. Asenkron işlemler, bir işlemin bitmesini beklemeden bir sonraki işleme geçerek zaman kazandıran işlemlerdir.
Promise'ler, işlemleri zincirlemek için kullanılabilecek bir yapıya sahiptir. Yani bir işlem tamamlandığında bir sonraki işlemi tetiklemek amacıyla kullanılır. Böylece kodun daha okunaklı ve bakımı kolay hale getirilmesine yardımcı olur.
Promise, Promise() constructor fonksiyonu ile oluşturulur. Bu fonksiyon iki adet parametre alır. İlk parametre, Promise'ler oluşturulduğunda verilecek işlemin fonksiyonudur. İkinci parametre ise Promise'ler çalışırken ne yapılacağına dair bilgi içeren bir fonksiyondur.
Parametre | Açıklama |
---|---|
resolve | Promise başarılı bir şekilde tamamlandığında işlemin sonucunu döndürür. |
reject | Promise başarısız bir şekilde tamamlandığında hata yakalamak için kullanılır. |
Bir Promise oluşturmak için aşağıdaki örnek kod kullanılabilir:
const promise1 = new Promise((resolve, reject) => { setTimeout(() => { console.log("Promise1 tamamlandı."); resolve("Promise1 sonucu."); }, 2000);});
Bu örnekte promise1 isimli bir Promise oluşturuluyor. İşlem, 2 saniye sonra tamamlanacak ve sonucu resolve fonksiyonu ile geri döndürecektir.
Async/Await Nedir?
JavaScript'te Async/Await, Promise'lerin bir üst seviyesinde yer alan ve Promise'leri daha kolay bir şekilde işlememize olanak tanıyan bir yapıdır. Async fonksiyonlarının çalışmasına izin veren ve daha az kod yazmamıza olanak sağlayan Async/Await, asenkron işlemleri daha okunaklı ve anlaşılır hale getirir.
Promislere göre avantajlarından biri, Callback fonksiyonları yerine Promise'leri daha kullanışlı bir şekilde yönetebilmesidir. Promise'in dönüşüne bağlı bir işlemi beklemek yerine, Async/Await yapısıyla işlemin tamamlanmasını beklerken diğer işlemlere devam edebilirsiniz. Bu, kodların daha net ve düzenli görünmesini sağlar. Await operatörü, bir işlem tamamlanmadan diğer bir işleme geçmemizi engeller. Bu işlem, turnike mantığına benzer şekilde çalışır; önce bir işlem tamamlanır, ardından diğer işlem devam eder.
Async fonksiyonlarının tanımlanması ile birlikte try...catch blokları kullanarak hataları yönetmek de mümkündür. Bu yapı sayesinde hataların kontrol edilmesi ve uygulamanın istenmeyen sonuçlar ile karşılaşmaması sağlanır.
Async/Await'in kullanımı daha kolay olduğundan, Promise'lere kıyasla daha okunaklı ve daha az hata yapmaya neden olur. Ancak, Async/Await'in Promise'lere göre bazı durumlarda daha yavaş çalışabildiğine dikkat etmek gerekir.
Özetlemek gerekirse, Async/Await, JavaScript kodlarını daha okunaklı ve anlaşılır bir yapıya getirir. Promise'lere göre daha az kod yazmak için birçok fırsat sunar ve hataları daha iyi yönetmemize olanak sağlar.
Async Fonksiyonlar
JavaScript'te Async fonksiyonlar Promise'lerin kullanımını daha kolay hale getiren bir özelliktir. Async fonksiyonlar "async" anahtar kelimesi ile tanımlanır ve içindeki herhangi bir işlem promise olarak değerlendirilir.
Async fonksiyonlar, Promise'ler gibi ardışık işlemleri gerçekleştirebilir ve sonucu döndürebilir. Bununla birlikte, Async fonksiyonları Promise'lerden ayıran en önemli özellik, işlemleri sırayla işleme sokmaya gerek kalmadan kodun daha karmaşık bir şekilde çalışmasına olanak tanımasıdır.
Async fonksiyonlar, tanımlandıktan sonra diğer fonksiyonlar gibi çağrılabilir. Ancak, asenkron özellikleri nedeniyle, işlemleri tamamlanana kadar işlemi bekletmeden diğer işlemlere devam edebilir. Bu özelliği, Async fonksiyonları sıklıkla Promise'lerle birlikte kullanıldığında yararlı hale getirir.
Örneğin, bir web sayfasından veri çekmek için bir Async fonksiyon yazmak mümkündür. Bu fonksiyon, verileri uzun bir işlem sonucu alır ve sayfanın yüklenmesini bekletmeden işlem yapmayı sağlarken, fonksiyon sonucunu Promise olarak döndürebilir.
Async fonksiyonlar kullanırken, JavaScript'in try...catch blokları kullanılması önerilir. Bu, olası hataların yönetimini daha kolay hale getirir. Ayrıca, Async fonksiyonlarında "await" operatörünü kullanarak beklenen bir sonuç geleceği zaman, işlemi bekletmeye gerek kalmadan çalıştırabilirsiniz.
Async fonksiyonlar çalışırken, diğer işlemler aynı şekilde devam eder. Bu nedenle, işlemleri kesin bir sıraya sokmak yerine kodu daha akıcı bir şekilde çalıştırarak daha hızlı bir deneyim sağlamanız için önerilir.