Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

97
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda