我有一个类型为dplyr
的变量,该值是从另一个类型为Observable的函数中设置的,该函数类似于:
data.table
现在我该如何检测或知道returnDate值是否已更改,或者可观察对象是否已接收到另一个值。 基本上我正在使用此可观察对象更改日期,因此我需要知道特定对象(this.data.Date)是否更改了给定值(observer.next),或者是否存在诸如final / finalaize的辅助功能。对于可观察者。
答案 0 :(得分:0)
尽管很难从您共享的代码中理解您执行此操作的方式。但据您所知-
所以如果给定,我需要知道一个特定的对象(this.data.Date) 值已更改
在rxjs可观察对象的情况下,有一个运算符distinctUntilChanged的作用完全相同。阅读here。
仅在当前值与上一个值不同时发射。
样品溶液
ng-if="removed_{{product.product_id}} == 'added'"
看看是否适合您。
答案 1 :(得分:0)
如果您每次返回要订阅的new Observable()
,您将获得不同的值,例如,您返回return new Observable(Math.random()*10)
并订阅了2个组件,您将获得不同的值,但是我认为您需要获得相同的价值,因此对于这种情况,请使用Subject()
首先您必须声明它,然后设置值,然后返回this.subject.asObservable()
,这使您有机会订阅该主题。
简单的例子
// set initial value to subject, ussualy set data above constructor
dataSubject = new BehaviorSubject(null);
// then you get data from server
// response can be data from serve or data from eventEmitter whatever you need
this.dataSubject.next(response);
// then return this subject
return this.dataSubject.asObservable()
在这种情况下,请使用BehaviorSubject,因为它可以保存值,还可以设置主题的初始值
如果您还有其他问题,请随时提问。