应该怎样做才能处理过时的数据?我有两个相似(但不完全相同)的场景。一个是有新数据的时候,另一个是Observable中没有新数据的时候:
案例一:
在代码中它看起来像这样:
export class CategoryComponent implements OnInit {
private category : Observable<Category>;
constructor(private categoryService : CategoryService ,
private activatedRoute : ActivatedRoute){
this.category = categoryService.category;
}
ngOnInit() {
this.subscribeToUrlChange();
}
private subscribeToUrlChange(){
this.activatedRoute.params.subscribe(params =>{
const category = '/'+params['category'];
this.categoryService.getCategory(category);
});
}
}
这里会发生的是视图将首先呈现,并且在http调用的持续时间内将显示200ms旧类别,然后当http请求结算并且新类别命中类别主题时快速查看,视图将刷新来自&#34;监视器&#34;类别。 我假设这种恼人的行为在生产高峰时段会更糟。 简单的解决方法是首先将null发送到类别主题,然后执行http请求,但这会打开另一组问题。
案例二:
export class CartComponent{
private order : Observable<Order>;
constructor(private cartService : CartService) {
this.order=this.cartService.order;
}
}
另一方面,cartService将具有以下内容:
private _order : Subject<any> = new Subject<any>();
public order : Observable<Order> = this._order.asObservable();
困境:当用户退出时,我应该只是这个.__ order.next(null)?有更优雅的方式来处理这个问题吗?