我有一个数字,被合并成一个可观察执行一些命令的事件。 如果命令成功的一些结果发生。 此外,该命令应被记录。
在代码方面,这看起来像
let mevts = modifyingevents |> Observable.filter exec_action
|> Observable.add (fun action -> self.OutlineEdited <- true)
其中函数exec_action
导致某些副作用如编辑一个TreeView。 如果成功则该属性OutlineEdited
设置为true
。
我希望能按照这个喜欢的东西
mevts |> Observable.scan (fun log action -> action::log) []
但事实证明, Observable.filter为每个订阅观察员执行一次。 这意味着副作用将被重复。
能否请您提出另一种方式来实现,而不具有相同的结果exec_action
执行两次? 我希望,以避免如果可以使用可变变量。