Я понимаю, что конвейер Async работает с наблюдаемым и помогает нам загружать async для данных, которые появятся позже.
Однако я могу работать и без использования async. Ниже приведен код
Составная часть
export class XComponent{
someProp: string;
someList: string[];
someFn(){
this.someService.subscribe(
data=>{
this.someProp = data.prop;
this.someList = data.list;
}
);
}
}
Шаблон
.....
<label>Prop</label>
<span>{{someProp}}</span>
<label>List</label>
<span *ngFor="let item of someList">{{item}}</span>
Приведенный выше код работает для меня без использования async и без каких-либо проблем. Почему я должен использовать async? Это потому, что нам не нужно объявлять переменную для данных, и мы можем использовать непосредственно наблюдаемую (хотя нам в любом случае нужно объявить наблюдаемую вместо данных)?
ИЗМЕНИТЬ
Ниже приведен код, взятый из угловой документации для примера async.
@Component({
selector: 'async-observable-pipe',
template: '<div><code>observable|async</code>: Time: {{ time | async }}</div>'
})
export class AsyncObservablePipeComponent {
time = new Observable<string>((observer: Subscriber<string>) => {
setInterval(() => observer.next(new Date().toString()), 1000);
});
}
Вместо этого я могу написать
@Component({
selector: 'async-observable-pipe',
template: '<div><code>observable|async</code>: Time: {{ time }}</div>'
})
export class AsyncObservablePipeComponent {
time;
constructor(){
setInterval(() => time = new Date().toString(), 1000);
}
}
Мне второй код тоже кажется чистым. (Еще чище)