вы можете попробовать await-for в некоторых случаях, но, возможно, он еще не готов к производству
npm i -S rx js -for- await
и обычно вам не нужно подписываться
- простой пример, вероятно, вы никогда не будете использовать его production
<ng-container *ngIf="{ data: fetchCharacters() | async} as source">
<div *ngIf="source.data">
{{ source.data }}
</div>
</ng-container>
fetchCharacters() {
return this.http.get('https://swapi.dev/api/people/');
)
async / await
example , выглядит бесполезным с головной болью ngZone в пользовательском интерфейсе, но может быть полезно для фоновых задач
onClick() {
const source$ = this.queryService.get();
this.ngZone.runOutsideAngular(async () => {
for await (const data of eachValueFrom(source$)) {
console.log(data);
}
});
}
близок к реальному примеру с redux и async / await см.
пример @Action(TableUpdateAction)
async updateAction(ctx: StateContext<TableStateModel>) {
ctx.setState(patch({ data: [] }));
const source$ = this.dataService.get();
for await (const data of eachValueFrom(source$)) {
ctx.setState(patch({ data }));
}
}