Я немного запутался в том, как и когда вложенные async-каналы разрешают в шаблонах angular2, и документация не находится в отличном месте прямо сейчас, поэтому я надеюсь, что кто-то из SO может помочь.
У меня очень простое Rxjs Observable, возвращаемое службой, через Observable.of(myArray).delay(2000)
- задержка там, чтобы показать, что происходит с синхронизацией.
В моем шаблоне я просто использую async-канал для наблюдаемого, возвращенного выше, в охватывающем теге <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()
в моем компоненте?