對於如何以及何時在angular2模板中嵌套異步管道解決問題,以及文檔現在不在很好的位置,我很困惑,所以我希望SO上的某個人能夠提供幫助。嵌套的Angular2異步管道如何解決?
我有一個非常簡單的Rxjs Observable從服務返回,通過Observable.of(myArray).delay(2000)
- 延遲是有幫助顯示正在進行的時間。
在我的模板,我只是用在觀察到在封閉<p>
標籤以上恢復控制的異步管道時,將顯示它,然後試圖表明<p>
標籤內返回數組長度:
<p *ngIf="!(lists | async)">Waiting for lists...</p>
<p *ngIf="lists | async">We have lists! How many? => {{(lists | async)?.length}}</p>
所以,當你加載這個了,「等待名單」顯示,2秒後,我們得到了「我們列出了!」如預期的那樣,但內部異步管道需要花費另外2秒才能解析並顯示已解析的數組長度。
如何根據Observable返回的值同時顯示與其他所有內容相同的顯示長度?或者這對於異步管道來說不是一個好用例,我應該在組件中使用subscribe()
而不是?
謝謝 - 有道理。在我的observable上使用'delay()'可以讓我更深入地瞭解'* ngIf'如何工作:) – chucknelson
也許有必要提一下,源觀察值不以任何方式共享*好。在最初的場景中,'lists' observable被訂閱兩次(一次用於'ngIf',然後用於'length'),並且在每個訂閱上流重新開始,包括延遲。如果'lists'被共享,重播或者變熱,第二次訂閱會馬上找到最終的數組值,而不會有新的延遲。 – superjos