Make Immediate And Delayed Transitions
An XState state can define an on
key with an object. The object can define one or more events that the state listens for and transitions in response to. In addition to transitioning in response to an event, you can have a state do both immediate and delayed transitions.
Here is an example state machine.
This machine will start in the pending
state. The always
object will immediately fire which will trigger a transition to the loading
state. There the after
object will schedule a transition to the done
state to happen in 5 seconds (5000ms).
The always
is the immediate transition. The after
is the delayed transition.
The "eventless" always
transition, in practice, is more useful when combined with a condition. That allows you to define an immediate transition that only takes place if some condition has already been met (e.g. does the context
already contain the thing we were about to look up?).
Last updated