我们在某些服务中有一个行为主题
city = new BehaviorSubject(config.defaultCity);
get cityObservable(){
return this.city.asObservable();
}
当我们在某些组件中获得可观察值时,我们可以侦听值的变化,因此我们基于城市获取不同的数据。
喜欢这样
categories: Observable<any>;
activeCoupons: Observable<any>;
ngOnInit() {
this.categories = this.utilsService.cityObservable
.pipe(
debounceTime(100),
switchMap(cityId => this.categoryService.fetchCategories(cityId)),
map((response: any) => response.data)
);
this.activeCoupons = this.utilsService.cityObservable
.pipe(
debounceTime(100),
switchMap(cityId => this.couponService.fetchActiveCoupons(cityId))
);
}
问题在于,当城市值更改时,fetchCategories
被调用一次,而当城市值更改时,fetchActiveCoupons
被调用了两次!为什么它的价值两次发出?他们没有相同的代码吗?