Nodejs'te ES7 Asenkron Request İşlemleri


Nodejs gün geçtikçe dahada görünür oluyor. Şuanki java ASP savaşları gibi ileridede python - nodejs savaşları görebiliriz. Bilmiyorum belki Go'da bu savaşın içinde olur bunlar beni ilgilendirmiyor. Eline bir iş gelir ve işi uygun en hızlı en çevik çözüme ulaştırabilecek hangisiyse onu tercih edersin.

Proje büyüdükçe ihtiyaçlar değişir ve ihtiyaçlara göre kullandığın altyapıda da değişikliğe gidersin.

Mesela küçük bir SaaS olarak başlarsın, küçük yatırımlarla, düşük trafiklerle mysql - php işini çözüyordur. Proje ilerledikçe middleware applicationlar, micro servisler, ölçekleme, optimizasyon derken projenin ihtiyaçları değişir; apache casandra, elastichsearch kullanmaya başlarsın.

O yüzden hangisinin daha iyi olduğunu değil nodejss ile programlama yapmak için hevesli arkadaşlarıma kaynak oluşturabilmek adına yazıyorum.

Bazen iç içe birden fazla servise istekte bulunmak gerektiğinde klasik herkesin ilk aklına gelen, aşağıdakigibi istekleri iç içe yazmak.



Ne yazıkki bu durum böyle olduğunda; her istek için kontroller ve ifadeler artığında, işin içinden çıkılmaz bir hal alıyor.

Ve javascript severlerin bildiği christmas tree sorunu ortaya çıkıyor.
Hele birde iteration callback fonksiyonları işin içine girdiğinde belkide o log n gibi berbat bir durum ortaya çıkıyor.

Evet buda asenkron, istekler sırasında başka kodlar çalıştırabilirsin tabiki ama servisin okunabilirliği; müdahale edilebilirliği nerede ?

İşte burada ES7 yapısı yardımımıza koşuyor.


Burada async bir fonksiyon tanımlıyoruz içerisinde fonksiyonları tanımlayıp, await ile sorguların dönmesini bekliyoruz.
İki kodda aynı işi yapıyor, hangisi daha okunur, hangisini kullanmak istersiniz, kararı siz verin.

Yorumlar