【发布时间】:2017-06-03 23:12:03
【问题描述】:
我发现了一个不容易解决的简单问题,我试图让订阅不会触发,除非sorting.changes 和pagination.changes 这两个值中的任何一个发生了变化。我猜应该使用distinctUntilChanged,但是我无法弄清楚要提供什么作为它的参数,因为我有两个值需要检查而不是一个。
编辑(这次是正确的订阅调用):这是订阅调用:
this.requestParamsSubscription = this.store.select('brands')
.distinctUntilChanged()
.map((brands: IBrandsStorage) => {
return {sorting: brands.sorting, pagination: brands.pagination};
})
.subscribe(
params => {
this.store.dispatch({type: BrandsActions.GET_BRANDS_REQUEST});
}
);
changes of the objects 是一个简单的数字计数器,可以跟踪变化,我想我可以用它来检查自上次以来对象是否发生了变化。
有什么想法吗?
【问题讨论】:
-
标题的变化与问题文本不一致:“除非all和total这两个值发生了变化”。我不介意改变答案,但问题也应该改变:“除非其中一个所有或的值都改变了”。
-
编辑清楚。
标签: angular typescript rxjs ngrx angular2-observables