我正在寻找reactive-banana中的函数,该函数将根据另一个事件流或信号的传入值(行为?)选择接下来要发出的事件流。在scala库中,响应式网络可以通过以下方式完成:
flatMap[U](f: T => EventStream[U]): EventStream[U]
谢谢!
答案 0 :(得分:6)
这是动态事件切换。不幸的是,在该公式中,它具有many problems,因此不包括在反应性香蕉中。但是,动态事件切换的变体将是added soon。现在,你将不得不这样做。
特别是,flatMap
是一元绑定函数的Scala名称;行为的Monad
实例是有问题的,因为它提供了动态事件切换功能,导致我链接的文章中解释的时间泄漏。
答案 1 :(得分:3)
作为ehird答案的附录,我想提一下,通常可以避免动态事件切换,即相关行为/事件在编译时在范围内。只有在动态计算新的行为/事件时才需要动态事件切换,而不是在已经在范围内的行为/事件之间切换时。
特别是,请查看examples page上的TwoCounters.hs示例,看看如何做到这一点。