monkeydo/README.md
Victor Westerlund 9e362617e9
Update README.md
2021-11-10 12:52:43 +01:00

2.3 KiB

Threaded task chaining for JavaScript


Monkeydo uses the portable data format JSON to read tasks, making it easy to read by primates and machines alike.

{
  "tasks": [
    [0,"myJavaSriptMethod","someArgument","anotherArgument"]
  ]
}
Array key Description
0 Delay
Wait this many milliseconds before running this task
1 Method
Name of the JavaScript method to call
2+n Arguments
Some amount of arguments to pass to the method

Use Monkeydo

Monkeydo comes as an importable ECMAScript 6 module. In this guide we'll import this directly from a ./modules/ folder, but any web-accesible location will work.

  1. Import Monkeydo as an ES6 module
    import { default as Monkeydo } from "./modules/Monkeydo/Monkeydo.mjs";
    
  2. Define your JS methods in an object
    const methods = {
      myJavaScriptMethod: (foo,bar) => {
        console.log(foo,bar);
      }
    }
    
  3. Define your tasks in a JSON manifest (file or JSON-compatible JavaScript)
    {
      "tasks": [
        [0,"myJavaSriptMethod","Just like a","monkey"],
        [1200,"myJavaSriptMethod","I've been","dancing"],
        [160,"myJavaSriptMethod","my whole","life"]
      ]
    }
    
  4. Initialize and run Monkeydo with your methods and manifest
    const monkey = new Monkeydo(methods);
    monkey.play(manifest);
    

The example above would be the same as running:

console.log("Just like a","monkey"); // Right away
console.log("I've been","dancing"); // 1.2 seconds after the first
console.log("my whole","life"); // and then 160 milliseconds after the second