Skip to content
/ ordem Public

🏁 ultra-simple ordered task runner for Node.js and Browser. Run your asynchronous functions predictably in series.

License

Notifications You must be signed in to change notification settings

dwyl/ordem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ordem - ordered task runner

Build Status codecov.io Dependencies: None! devDependencies Status contributions welcome HitCount

ducks-in-a-row

ordem is a synchronous (ordered) task runner for Node.js and Client web applications for when you need to run a list of functions in a specific order.

Why?

JavaScript is synchronous and single-threaded, but when multiple statements are called in succession,
results can be returned in an unexpected order ... Often we need to run a sequence of tasks in a specific order.

What?

Lets you run a series of JavaScript functions/methods in a specific order and then execute a callback (once) at the end.

How?

install from npm

npm install ordem --save-dev

Usage

Node.js

var ordem = require('ordem'); // load the module

ordem([
  function(callback){
    // perform the first task
    callback(null, 'one');
  },
  function(arg1, arg2, callback){
    // perform second task
    callback(null, 'two');
  },
  function(callback){
    // perform third task, etc.
    callback(null, 'done');
  }
], function callback(err, result) {
  // result now equals 'done'
  // callback only gets called once!
});

Browser

Tip: don't try to load the script directly from GitHub (they don't like that...) instead use https://raw.githubusercontent.com/dwyl/ordem/master/index.js

in your html:

<script src="https://raw.githubusercontent.com/dwyl/ordem/master/index.js"> </script>

<script>
  ordem([
    function(callback){
      // perform the first task
      callback(null, 'one');
    },
    function(arg1, arg2, callback){
      // perform second task
      callback(null, 'two');
    },
    function(callback){
      // perform third task, etc.
      callback(null, 'done');
    }
  ], function callback(err, result) {
    // result now equals 'done'
    // callback only gets called once!
  });
</script>

see: example/index.html for copy-pasteable example code.



tl;dr

We needed this for alvo our automated browser test runner. But its useable anywhere that runs JavaScript!

Background Reading

Name?

All the "good" names are taken.
So we used the Portuguese/Spanish word for "orderly" see: https://translate.google.com/#auto/en/ordem

Interesting fact: the word ordem is featured on the Brazilian flag: brazil flag

one of only 16 countries to feature words on a flag. they obviously feel quite passionately about it. so do we.

Also, whenever I hear the word "order" I think of:

Everything seems to be in order

Austin Powers 4 is "in development" ... http://www.imdb.com/title/tt1218992/ #YeahBaby

About

🏁 ultra-simple ordered task runner for Node.js and Browser. Run your asynchronous functions predictably in series.

Resources

License

Stars

Watchers

Forks

Packages

No packages published