Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

95
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!