【发布时间】:2017-07-28 01:01:39
【问题描述】:
我还在学习 rxjs,对于如何为运算符 distinctUntilChanged 编写自定义比较函数有点困惑。
我研究过使用 distinctUntilKeyChanged,它适用于单个键...但我有两个键需要比较。
看来我可能需要合并扫描运算符来比较当前发出的值和最后发出的值....?
好的,这是我的代码。我正在从谷歌地图流式传输地图中心的变化。我不需要地图中心 GeoLocation 非常精确,所以我将谷歌地图返回的大部分小数四舍五入。
searchStream$
.map((value)=>{
return {
lat: round(value[1].lat, 1),
lng: round(value[1].lng, 1)
}
}).distinctUntilKeyChanged('lat')
.do((position)=>{console.log(position)})
.subscribe((position)=>{ this._store.dispatch(new QueryUpdateGeoPositionAPIAction({latitude: position.lat, longitude: position.lng})) });
回到我的问题,我如何比较两个属性(lat & lng)以确保它仅在其中一个值发生变化时才发出值?
感谢您的帮助!
【问题讨论】:
-
文档中有一个例子:reactivex.io/rxjs/class/es6/…
标签: javascript rxjs