Nodejs promises kullanımı

Javascript single-threaded bir dil olduğu için ajax, file read gibi beklenmesi gereken işlerde js bu işlemlerin bitmesini normalde beklemez hemen diğer satıra geçer..

 

Bunu kontrol etmek için callbackler yazabilirsiniz ama callback hell denilen durumla karşı karşıya kalınabilir.

Buna alternatif olarak promises kullanabilirsiniz, bu sayede daha temiz bir kod yazabilirsiniz. Kelime anlamından da anlaşıldığı gibi söz vermek demektir yani js’e diyoruz ki bana şu işlem bittikten sonra bunları yapacağına dair söz ver.

Ben promise kütüphanelerinden q‘yu seçtim ve onun üzerinden anlatacağım.

Aşağıdaki komut ile paketi yüklüyoruz.

npm install q –save

Paketimizi projeye dahil ediyoruz

Örneğin veritabanından bir kayıt çekmek istiyorsak bunu q promises kullanarak şöyle yapıyoruz:

Basitçe olayın mantığı yukarıdaki gibi işliyor, veritabanına sorguyu gönderiyoruz sonuç döndüğünde resolve ederek promise tamamlanıyor, eğer tablodan sonuç bulunamazsa ilgili hatayı gönderiyor.

Fonksiyonu da aşağıdaki gibi çağırıyoruz:

https://github.com/kriskowal/q