Invoking machines

State machine is a      

It resolves on final state

promise

Encapsulate business logic

Machine can invoke another machine

{
  {
    invoke: {
      src: myMachine,
      onDone: "success",
      onError: "error"
    },
  },
  {
    services: {
      myMachine: createMachine({
	id: "myMachine",
        initial: "idle",
        states: {
          idle: {
            entry: escalate("ERROR")
          }
        }
      })
    }
  }
}

     Rejection can happen by                              some action

escalating

Passing data

const myMachine = Machine({
  initial: "ready",
  states: {
    ready: {
      invoke: {
        src: Machine({
          initial: "ready",
          states: {
            ready: {
              type: "final",
              data: () => ({
                foo: "I am done!"
              })
            }
          }
        }),
        onDone: {
          actions: (_, event) => {
            console.log(event);
          }
        }
      }
    }
  }
});

Data can be passed by using                property on final state                      

data

8. Invoking machines

By Kuba Skoneczny

8. Invoking machines

  • 170