3

我正在寻找响应式香蕉中的函数,该函数将根据另一个事件流或信号的传入值(行为?)从下一个要发出的事件流中进行选择。在 scala 库中,reactive-web 是通过以下方式完成的:

 flatMap[U](f: T => EventStream[U]): EventStream[U] 

谢谢 !

4

2 回答 2

6

这是动态事件切换。不幸的是,在那个公式中,它有很多问题,因此没有包含在反应香蕉中。但是,很快就会添加动态事件切换的变体。现在,你将不得不没有它。

特别flatMap是 Scala 的一元绑定函数的名称;行为Monad实例是有问题的,因为它提供了导致我链接的文章中解释的时间泄漏的动态事件切换功能。

于 2012-04-07T10:42:07.947 回答
3

作为 ehird 答案的补充,我想提一下,通常可以避免动态事件切换,即当相关行为/事件在编译时范围内时。只有在动态计算新的行为/事件时才需要动态事件切换,而不是在已经在范围内的行为/事件之间切换时。

特别是,请查看示例页面上的 TwoCounters.hs 示例,了解如何执行此操作。

于 2012-04-08T07:41:50.577 回答