【发布时间】:2010-11-22 12:49:11
【问题描述】:
我有一个可观察的,当它触发时会显示一条消息。延迟后,我想淡出该消息,除非同时该 observable 再次触发。
换句话说,给定一个 observable,我想创建另一个 observable,这样当最后一个事件触发时,第一个 observable 超过指定时间之前创建的 observable 触发最后一个事件。
【问题讨论】:
标签: javascript events reactive-extensions-js
我有一个可观察的,当它触发时会显示一条消息。延迟后,我想淡出该消息,除非同时该 observable 再次触发。
换句话说,给定一个 observable,我想创建另一个 observable,这样当最后一个事件触发时,第一个 observable 超过指定时间之前创建的 observable 触发最后一个事件。
【问题讨论】:
标签: javascript events reactive-extensions-js
鉴于可观察到的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。
【讨论】: