二极管。在电路中发送超过 1 个动作

Diode. Send more than 1 action in circuit

同事们,我不能让diode从另一个动作中发送一个以上的动作给自己。这里的例子来自 App circuit:

val handler = new ActionHandler(myZoomedState) {
    override def handle = {
      case action => effectOnly(Effect(someFuture map {_ =>
        someAction  //This action doesn't perform 
        someOtherAction  //This one does
      }))

      case someAction => ???
      case someOtherAction => ???
    }
}

怎样才能连锁我的动作?像 >>callbacks:
someCallback >> someOtherCallback

Oleg,你的问题不太清楚。如果你的 someActionsomeOtherAction 的处理程序实际上只是效果,正如你的 case action 的实现所建议的那样,你可以将它们移动到命名方法中并使用 << or >> or + 组合它们。如果这不是您想要的,您应该更详细地阐述您的问题。

解决方案是创建另一个动作,将这两个动作结合起来。而且我仍然可以处理 Future 错误。看起来像这样:

case object DoSmthStuff
...

val handler = new ActionHandler(myZoomedState) {
    override def handle = {
      case action => effectOnly(Effect(
          someFuture map { _ => DoSmthStuff } recover { ... }
      ))

      case DoSmthStuff = effectOnly(
          Effect.action(someAction) >> Effect.action(someOtherAction)
      )

      case someAction => ???
      case someOtherAction => ???
    }
}