Advertisement
yurystanev

FMS

Oct 24th, 2019
371
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const {
  2.     Machine,
  3.     interpret,
  4.     send
  5. } = require('xstate');
  6.  
  7. const childMachine = Machine({
  8.     id: 'child',
  9.     initial: 'second',
  10.     states: {
  11.         second: {
  12.             on: {
  13.                 SECOND: {
  14.                     target: 'third',
  15.                     actions: [(context, event, actionMeta) => {
  16.                         console.log('Child Machine is in the 2nd state -> ', context)
  17.                     }, send('THIRD')]
  18.                 }
  19.             }
  20.         },
  21.         third: {
  22.             on: {
  23.                 THIRD: {
  24.                     actions: [(context, event, actionMeta) => {
  25.                         console.log('Child Machine is in the 3rd state -> ', context)
  26.                     }]
  27.                 }
  28.             }
  29.         }
  30.     }
  31. });
  32.  
  33. const parentMachine = Machine({
  34.     id: 'parent',
  35.     initial: 'first',
  36.     states: {
  37.         first: {
  38.             invoke: {
  39.                 id: 'child',
  40.                 src: childMachine
  41.             },
  42.  
  43.             on: {
  44.                 FIRST: {
  45.                     actions: [(context, event, actionMeta) => {
  46.                         console.log('Parent Machine is in the 1st state -> ', context)
  47.                     }, send('SECOND', {
  48.                         to: 'child'
  49.                     })]
  50.                 }
  51.             }
  52.         }
  53.     }
  54. });
  55.  
  56. const parentMachineService = interpret(parentMachine).start()
  57. parentMachineService.send('FIRST')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement