Я совершенно новичок в Xstate и изо всех сил пытаюсь найти помощь в официальной документации.
Проблема довольно проста, я хотел бы знать, если событие инициируется, когда не предполагается к.
У меня есть базовый c рабочий процесс, который очень строг с точки зрения переходов, например, мое состояние не может go с «в ожидании» до «обработано» без перехода от «загружен» .
Если я использую:
stateService.send('PROCESSED')
, пока состояние находится в состоянии «ожидание», состояние не изменяется (корректно), но есть ли в Xstate какая-либо утилита или событие, которое фактически сообщает мне, что транзакция не была запущена, поскольку событие не было разрешено / исправлено?
Это мое состояние
const stateMachine = Machine(
{
id: 'vocalTrack',
initial: 'PENDING',
context: {},
states: {
PENDING: {
on: {
UPLOADED: 'UPLOADED',
},
},
UPLOADED: {
on: {
PROCESSED: 'PROCESSED',
},
entry: 'onUploaded',
},
PROCESSED: {
on: {
READY: 'READY',
ERROR: 'ERROR',
},
exit: 'onProcessed',
},
READY: {
type: 'final',
},
ERROR: {
on: {
UPLOADED: 'UPLOADED',
},
type: 'final',
},
},
},
{
actions: {
onUploaded: (context, event) => {
console.log(`++++ onUploaded action: ++++`)
},
onProcessed: (context, event) => {
console.log(`++++ onProcessed action: ++++`)
},
},
},
)
const stateService = interpret(stateMachine)
stateService.init('PENDING')
// I'd like to catch the following workflow errors
stateService.send('UPLOADED')
stateService.send('PROCESSED')