Я очень плохо знаком с Angular, и у меня есть следующие сомнения по поводу этого куска кода.
В представлении у меня есть этот код:
<li *ngFor="let hero of heroes$ | async" >
<a routerLink="/detail/{{hero.id}}">
{{hero.name}}
</a>
</li>
повторение на героев $ . Это не массив, но это Observable , потому что он работает над этим свойством связанного компонента:
heroes$: Observable<Hero[]>;
Это мне не совсем ясно.
Следуя моей интерпретации (просьба подтвердить или опровергнуть).
* ngFor не может напрямую итерировать героев $ , потому что это Observable .
Это Наблюдаемый испускает массив Герой , но это асинхронное поведение.
Канал async - это то, что подписывает эту Observable , и когда она готова (когда выдает массив), директива * ngFor может повторяться в этом массиве.
На практике таким образом я могу выполнить эту операцию непосредственно в представлении вместо этого в компоненте, подписывающем Observable.