Çalışma Şekli
- p-waterfall:
p-waterfall, her bir promiseyi bir öncekine bağlı olarak çalıştırır. Bu, her bir işlemin sonucunun bir sonraki işlem için girdi olarak kullanıldığı durumlar için uygundur.
- p-all:
p-all, verilen tüm promiselerin tamamlanmasını bekler ve sonuçları bir dizi olarak döner. Bu, tüm işlemlerin aynı anda başlatılmasını sağlar ve hepsinin tamamlanmasını bekler.
- p-series:
p-series, promiseleri sıralı bir şekilde çalıştırır. Bir promiseyi tamamlamadan diğerine geçmez, bu da belirli bir işlem sırası gerektiren durumlar için idealdir.
- p-props:
p-props, bir nesnedeki tüm promiseleri paralel olarak çalıştırır ve sonuçları nesne şeklinde döner. Her bir anahtar için bir promiseyi çalıştırır ve sonuçları anahtarlarla eşleştirir.
Kullanım Senaryoları
- p-waterfall:
Her bir işlemin sonucunun bir sonraki işlem için gerekli olduğu durumlar için idealdir. Örneğin, bir kullanıcı kaydı oluştururken, önce kullanıcı bilgilerini alıp ardından veritabanına kaydetmek için kullanılabilir.
- p-all:
Birden fazla bağımsız asenkron işlemi aynı anda başlatmak istediğinizde kullanılır. Örneğin, birden fazla API çağrısını aynı anda yapmak için idealdir.
- p-series:
Sıralı işlemler gerektiren durumlar için uygundur. Örneğin, bir veritabanına veri eklerken her bir eklemenin tamamlanmasını beklemek için kullanılabilir.
- p-props:
Bir nesnedeki tüm asenkron işlemleri paralel olarak çalıştırmak istediğinizde tercih edilir. Örneğin, bir kullanıcı profilindeki tüm verileri almak için kullanılabilir.
Hata Yönetimi
- p-waterfall:
Eğer bir işlemde hata oluşursa, p-waterfall zinciri durdurur ve hatayı fırlatır. Bu, hatanın kaynağını bulmayı kolaylaştırır.
- p-all:
Tüm promiselerin hata durumunu yönetir; eğer herhangi bir promisede hata oluşursa, p-all hemen hata fırlatır ve diğerlerini beklemez.
- p-series:
Bir işlem sırasında hata oluşursa, p-series o işlemden sonra gelen tüm işlemleri durdurur ve hatayı fırlatır. Bu, hata ayıklamayı kolaylaştırır.
- p-props:
Her bir promisede hata oluşursa, hata nesnesi döner. Hatalar, sonuç nesnesinde ilgili anahtar için undefined olarak gösterilir.
Performans
- p-waterfall:
Zincirleme çalışma, her bir işlemin sonucuna bağlı olduğu için, toplam süreyi etkileyebilir ancak daha kontrollü bir akış sağlar.
- p-all:
Tüm promiselerin aynı anda çalıştırılması, performansı artırabilir ancak çok fazla işlem yapıldığında kaynak tüketimini artırabilir.
- p-series:
Sıralı çalıştırma, her bir işlemin tamamlanmasını beklediği için toplam süreyi uzatabilir, ancak kaynak tüketimini daha iyi yönetir.
- p-props:
Paralel çalıştırma sayesinde, nesne içindeki tüm işlemler aynı anda gerçekleşir, bu da genel performansı artırır.
Öğrenme Eğrisi
- p-waterfall:
Zincirleme yapı, yeni başlayanlar için biraz karmaşık görünebilir, ancak mantığını anladıktan sonra kullanımı oldukça sezgiseldir.
- p-all:
Kullanımı oldukça basit ve anlaşılırdır, bu nedenle yeni başlayanlar için idealdir.
- p-series:
Sıralı işlem yapısı, yeni başlayanlar için anlaşılırdır, ancak daha karmaşık senaryolar için dikkatli bir planlama gerektirebilir.
- p-props:
Nesne tabanlı yapısı sayesinde, geliştiricilerin nesne yönetimi konusunda bilgi sahibi olmalarını gerektirir, ancak öğrenmesi kolaydır.