我有一种情况,我得到一些项目的列表并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();
}
}