mvflow / net.pedroloureiro.mvflow / HandlerWithEffects

HandlerWithEffects

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

Handler