简而言之
寻找实现的方法
observableOne.SkipIf(observableTwoFiresWithinPeriod)
说明
- 假设我正在观察人们走过一扇门 (
walkins Observable
) - 而且我还有办法判断他们是否有手机 (
phoneWalkins Observable
)。 - 现在我想观察另一部分不带电话走进门的人 (
nonPhoneWalkins Observable
)
鉴于我有walkins
和 phoneWalkins
然后我可以将子集作为流使用 nonPhoneWalkins
应该是walkins
除了phoneWalkins
.
- 如何使用响应式扩展来实现这一点?
- 请注意
phoneWalkins
walkins
之后发出信号如果发现此人携带手机
最佳答案
这是我的简单尝试:
public class Program
{
static void Main()
{
// all walkins
var walkins =
// all persons through a door each second
Observable.Interval(TimeSpan.FromSeconds(1), Scheduler.CurrentThread)
// if has phone (is even) then true, if not false
.Select(i => (i % 2 == 0));
var phoneWalkins = // substream of phoneWalkins (if you want it separate)
walkins
.Where(i => (i == true))
.Select(i => i);
var nonPhoneWalkins = // substream of nonPhoneWalkins (if want it separate)
walkins
.Where(i => (i == false))
.Select(i => i);
//walkins.Subscribe(Console.WriteLine); // output all
phoneWalkins.Subscribe(Console.WriteLine); // output phone
//nonPhoneWalkins.Subscribe(Console.WriteLine); // output nonPhone
}
}
关于c# - 如果 Rx 触发另一个事件,则忽略事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36258754/