temporal

Non-blocking, temporal task sequencing and scheduling.

temporal

Non-blocking, temporal task sequencing. temporal does NOT use setTimeout or setInterval.

npm install temporal
var temporal = require("temporal");
 
temporal.on("idle", function() {
  console.log("Temporal is idle");  
});
 
// Wait 500 milliseconds, execute a task 
temporal.delay(500, function() {
 
  console.log("500ms later...");
 
});
 
// Loop every n milliseconds, executing a task each time 
temporal.loop(500, function() {
 
  console.log("Every 500ms...");
 
  // |this| is a reference to the temporal instance 
  // use it to cancel the loop by calling: 
  // 
  this.stop();
 
  // The number of times this loop has been executed: 
  this.called; // number 
 
  // The first argument to the callback is the same as |this| 
});
 
 
// Queue a sequence of tasks: delay, delay 
// Each delay time is added to the prior delay times. 
temporal.queue([
  {
    delay: 500,
    taskfunction() {
      // Executes 500ms after temporal.queue(...) is called 
    }
  },
  {
    delay: 500,
    taskfunction() {
      // Executes 1000ms after temporal.queue(...) is called 
 
      // The last "delay" task will emit an "ended" event 
    }
  }
]);
 
// Queue a sequence of tasks: delay then loop 
// Each delay time is added to the prior delay times. 
temporal.queue([
  {
    delay: 500,
    taskfunction() {
      // Executes 500ms after temporal.queue(...) is called 
    }
  },
  {
    loop: 100,
    taskfunction() {
      // Executes 600ms after temporal.queue(...) is called 
 
      // Executes every 100ms thereafter. 
    }
  }
]);

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt.

See LICENSE file.