2014-09-03 17 views
5

, $ q.when() içinde geçti.

için bir söz/değer beklediği Ama sadece herhangi params geçmeden denir başkasının kod rastladı. İşte gördüklerimi basitleştirilmiş versiyonu:

var modal = false; 

if (modalOpen) { 
    return $q.when() 
} 
modalOpen = true; 

modal = newModal({ 
    template: opts.template, 
}); 

modal.result.finally(function(){ 
    modalOpen = false; 
}); 
} 

cevap

6

Yöntemleri eşzamanlı iade veya tutarlı kalması uyumsuz dönmelidir ya. Bir yöntem bazen eşzamanlı olarak geri dönerse ve yine de gerçeği saklamak istiyorsa bazen zaten şeffaftır - boş bir çözüm sözü verir. Bazen vaatler ve bazen eşzamanlı olarak dönen API'lara sahip olmak recipe for trouble'dur.

$q.when kullanımı, Angular'de boş çözümlenmiş bir söz elde etmenin en kolay yoludur.

+0

harika cevap. Tam olarak ihtiyacım olan şey. Teşekkürler! –

+0

Sevindim, yardımcı olabilirim. Hata durumunun da doğru olduğunu belirtmek gerekir - Sözlü geri dönüş yöntemleri eşzamanlı olarak değil, geri dönüşleri reddetmelidir. –

İlgili konular