响应式编程
Reactive
提供了处理异步事件、后台计算的工具,甚至允许你构建自己的 mainloop
并在不同 CPU 核心上运行。
事件处理
用于处理事件的节点是 Reactive
分类下的 ForEach
区块。这个区块允许你在其中放置任何节点,并能记住两个事件之间的任何数据。同时还有一个包含 Keep
的版本,可以使用布尔输出过滤事件。这个区块与用于 Spread 的 ForEach
非常相似,区别在于输入输出是跟随时间的事件值而不是 Spread 中的 Slice。
后台每30秒获取一次 web 数据,并将结果传递给 mainloop
切换或合并事件源
切换或合并 midi 事件
筛选
可以使用 OfType
或者 Where
进行筛选
其他节点包括 Skip
Delay
Delay(Selector)
Scan
Switch
...
接收事件
当你想脱离 observable
世界并将事件的值传递给 mainloop
时,可以使用以下三种节点:
HoldLatest
:总是返回最新的数据Sampler
:返回上一帧后所有的事件值,可为空S+H
:与Sampler
一样,但总是返回相同的值,直到下一个事件发生
这些行为有一些微小的差异,根据你的需求选择:
三种将事件值传递给 mainloop 的方法
创建事件
生成你自己的事件源同样简单:
创建 observable 事件源的不同方法
note
只使用 Record
类型的数据作为事件数据,因为它们是线程安全的。
如果你发送任何 Class
类的数据,请确认你完全明白你正在操作的事情!