typealias HandlerWithEffects<State, Action, Mutation, Effect> = (State, Action, EffectSender<Effect>) -> Flow<Mutation>
(source)
A function that on top of what Handler does, it also might emit side effects that are subscribed by an external component.
val example: Handler<State, Action, Mutation, Effect> = { _, _, effects: EffectProducer<Effect> ->
flow {
slowOperation1()
emit(Mutation.A)
slowOperation2()
emit(Mutation.B)
effects.send(Effects.OperationCompleted)
}
}
See Also