我有一种情况,我得到一些项目的列表,我在模板中使用async
。但是,无论出于何种原因,我需要获得组件中的第一个项目 - 我需要使用第一个元素进行大量工作,因此我不能只获取模板中的第一个项目。所以,我也订阅了相同的observable。这是“允许的”吗?我这样做是否有任何内存泄漏?这是我的意思的基本示例(实例http://plnkr.co/edit/tulvIgxBjpOoUZ4Gk3hI?p=preview):
@Component({
selector: 'my-app',
template: `
<div>
<h2>First item: {{first?.first_name}}</h2>
<ul>
<li *ngFor="let item of items$ | async">
{{ item.first_name }}
</li>
</ul>
</div>
`,
})
export class App implements OnInit, OnDestroy {
items$: Observable<any>;
_subscribe: Subscription;
first: any;
constructor(private api: RestAPI) {
}
ngOnInit() {
this.items$ = this.api.getItems();
this._subscribe = this.items$.subscribe((items) => {
this.first = items[0];
});
}
ngOnDestroy() {
this._subscribe.unsubscribe();
}
}