EffectExecutor
Functions
Runs effects and returns one EffectOutcome per synchronous effect, in order, each carrying the effect it came from — see EffectOutcome for why the pairing is here and not on EffectResult. An effect registered as async (see EffectRegistry.registerAsync) produces no EffectResult here — instead, dispatchAsync is called with the effect's Debounced.debounceKey (or null if it isn't Debounced) and a suspend block that runs that handler and returns its Event; the caller (telek's Telek) is responsible for actually launching that block somewhere that outlives this execute call, for cancelling a previous same-key launch first, and for routing a non-null Event back into the FSM. dispatchAsync is expected to be fire-and-forget from this method's perspective.