我有一个可观察的,当它触发时会显示一条消息。延迟一段时间后,我想把这条消息淡出来,除非在可观察的时间再次发射。
换句话说,给定一个observable,我想创建另一个observable,这样当最后一个事件触发第一个observable超过指定的时间时,创建的observable会触发最后一个事件。
答案 0 :(得分:0)
鉴于可观察的o
,以下代码可以满足我的需求:
var d = o
.DistinctUntilChanged()
.Timestamp()
.Select(function(e) { return e.Timestamp; })
.Publish();
d.CombineLatest(d.Delay(2000), function(a, b) { return a === b; })
.Where(function(o) { return o; })
.Subscribe(function(v) { /* ... do something with v ... */ });
d.Connect();
这会创建一个可观察的d
,在o
处于2000毫秒不活动状态后会触发。
注意:订阅功能中v
的值始终为true
。