Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

98
Visualizações
¿Cómo invocar una máquina con contexto de la máquina que invoca esa máquina?

En primer lugar, aquí está el código. necesito arreglar


Básicamente, hay dos máquinas:

  • currentStateMachine :
    • actualmente, quiero cambiar el estado manualmente (ejecutando comandos de send ) una vez por segundo según el estado real;
    • más tarde, podría ser mejor ejecutar una función de devolución de llamada en función de la cual cambiaría el estado, sin embargo, actualmente no tengo idea si podría funcionar así;
    • Uso el context para almacenar la marca de tiempo actual y el estado;
    • PROBLEMA: ¿cómo invocar intervalsMachine con el context de currentStateMachine ?
    • PREGUNTA: ¿ currentStateMachine esperará a que se complete la invoke antes de aceptar otro evento de estado? ¿O esperará hasta que se procese el estado y solo después de eso se procese un nuevo evento?
  • intervalsMachine :
    • crea un intervalo a partir de los estados actuales cada vez que se recibe un nuevo estado;
    • utiliza el context para almacenar startTime del intervalo, su length y el estado durante este intervalo;
    • el cálculo del intervalo se simplifica para la demostración, en será mucho más complejo.

TL;DR

  1. ¿Cómo invocar a intervalsMachine (máquina invocada) con el context de currentStateMachine (máquina que invoca intervalsMachine )?

  2. ¿ currentStateMachine esperará a que se complete la invoke antes de aceptar otro evento de estado? ¿O esperará hasta que se procese el estado y solo después de eso se procese un nuevo evento?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede usar la propiedad de data con invoke para especificar el contexto que se tomará del padre.

 const timerMachine = createMachine({ id: 'timer', context: { duration: 1000 // default duration } /* ... */ }); const parentMachine = createMachine({ id: 'parent', initial: 'active', context: { customDuration: 3000 }, states: { active: { invoke: { id: 'timer', src: timerMachine, // Deriving child context from parent context data: { duration: (context, event) => context.customDuration } } } } });

https://xstate.js.org/docs/guides/communication.html#invoking-with-context

Otra opción es usar el patrón (ctx, evt) => ... para la opción src .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda