1

我有一个可观察的,当它触发时会显示一条消息。延迟后,我想淡出该消息,除非同时该 observable 再次触发。

换句话说,给定一个 observable,我想创建另一个 observable,这样当最后一个事件触发时,第一个 observable 超过指定时间之前,创建的 observable 触发最后一个事件。

4

1 回答 1

0

给定 observable 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();

这将创建一个 observable d,它将在 2000 毫秒不活动后触发o

注意v订阅函数中的值总是true

于 2010-11-22T16:48:55.630 回答