在Reactive-Banana中,溢出函数的事件处理顺序是什么?

6
我测试了一下,似乎事件处理的顺序与源事件列表中的顺序相同。但是由于文档只说明:

同时发出事件。严格来说,我们有溢出.收集 = id

我认为我不能依赖它。

那么我应该怎么样创建一个类似于spill的函数,其规范如下:

连续发出事件,并保证在第一个和最后一个事件之间没有其他事件触发

或者我应该尝试不同的方法?我正在尝试在Reactive-Banana中实现宏功能。

1个回答

3

(我是reactive-banana的作者。)

看起来事件处理的顺序与源事件列表中的顺序相同。

这是正确的,你可以依赖它。实际上,它更多或者更少地遵循等式spill . collect = id。毕竟,为了产生恒等映射,spill必须保留事件的顺序,就像collect已经按照列表中的顺序放置它们一样。

此外,你可以查看模块Reactive.Banana.Model(在版本0.5中为Reactive.Banana.Internal.Model)和Reactive.Banana.Combinators的源代码。综合起来,它们提供了权威的模型实现。你可以直接检查spill 的行为。(虽然可能有点混乱,因为模型分为两个部分建立的)

尽管如此,我还是会在文档中添加一些解释。


谢谢你提供的这个库。我非常喜欢用它来学习FRP。 - llayland

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接