5 ms·
What is the difference between „call state machine nextStep() with a fixed timer“ vs „call async fns with a delay“?
by MrBuddyCasino 3y ago
What is the difference between „call state machine nextStep() with a fixed timer“ vs „call async fns with a delay“?
- leoedin 3y agoYou mean calling async functions with internal delays? The delay is defined internally to the async function, rather than externally. The difference between: async fn bla() { doWork(); waitForSecs(x); doMoreWork(); waitForSecs(x); lastBit(); } and fn somethingElse() { // state is persistent match state { FirstState => doWork(); state = SecondState; SecondState => doMoreWork(); state = ThirdState; ThirdState => lastBit(); state = Done; _ => () } is that the first example controls the delay period, while in the second example the caller decides the period. The timing of the first example is also dependent on the execution time of the work functions, while the timing of the second is only dependent on the caller. The benefit of the second example is that it can be completely synchronous with other parts of the system. You know that when your global tick happens, all the state transitions also happen. If each function manages their own time delays, that's not a given.