立即从 accumB 获取更新
Getting updates from accumB without delay
accumB
的文档说:
Note: As with stepper, the value of the behavior changes "slightly
after" the events occur. This allows for recursive definitions.
在我的例子中没有递归,但我想获得更新 "right now",而不是 "slightly after"。为什么没有特殊版本的accumB
?我想,我遗漏了一些明显的东西?
编辑: 在我的应用程序中,我有 data Config
,它包含各种配置值和一堆 Event (Config -> Config)
,当用户更改一些时会触发它们GUI 中的值。现在,我希望程序的其他部分可以随时访问 Config
,这就是我在那里使用 Behavior Config
的原因。问题是,当更改事件被触发时,行为仍然具有旧值 Config
,因此我无法立即观察到此更改。
如果您有一个 Behavior Conf
,那么您可以通过 Applicative
class 组合器从中创建其他行为。例如,您可能将其转换为 Behavior String
,然后显示在文本字段中。将行为提供给这样的 UI 小部件后,小部件代码会确保显示行为的 new 值。
如果您需要明确指示配置何时更改,那么 Event Conf
可能更合适。您可以为此使用 accumE
函数,它将包含 new 值。
accumB
的文档说:
Note: As with stepper, the value of the behavior changes "slightly after" the events occur. This allows for recursive definitions.
在我的例子中没有递归,但我想获得更新 "right now",而不是 "slightly after"。为什么没有特殊版本的accumB
?我想,我遗漏了一些明显的东西?
编辑: 在我的应用程序中,我有 data Config
,它包含各种配置值和一堆 Event (Config -> Config)
,当用户更改一些时会触发它们GUI 中的值。现在,我希望程序的其他部分可以随时访问 Config
,这就是我在那里使用 Behavior Config
的原因。问题是,当更改事件被触发时,行为仍然具有旧值 Config
,因此我无法立即观察到此更改。
如果您有一个 Behavior Conf
,那么您可以通过 Applicative
class 组合器从中创建其他行为。例如,您可能将其转换为 Behavior String
,然后显示在文本字段中。将行为提供给这样的 UI 小部件后,小部件代码会确保显示行为的 new 值。
如果您需要明确指示配置何时更改,那么 Event Conf
可能更合适。您可以为此使用 accumE
函数,它将包含 new 值。