我需要按顺序执行http get调用。这个How to chain Http calls in Angular2对如何做到这一点有很好的解释。然而,每当我重新审视这条路线时,我的观察结果在每次访问后被称为2次。如此多的重复http调用并不好。如何确保只进行一次通话。
取消订阅破坏似乎也无济于事。
ngOnInit() {
let counter1 = 0, counter2 = 0;
console.log('MyBiraComponent ngOnInit');
let uk = this.us.get();
this.u = uk.map(person => {
console.log('line 47, Person Id: ', ++counter1);
return person.id;
}).flatMap(id => {
console.log('line 48 - Person id: ', person.id);
return this.bu.get(id);
}).subscribe(res => {
console.log(res);
});
}
ngOnDestroy() {
this.u.unsubscribe();
console.log('MyBiraComponent Destroyed');
}
首次访问路线
第二次访问路线
第3次访问路线