node package manager
Loosely couple your services. Use Orgs to version and reuse your code. Create a free org »



Creates an Asynchronous Stack which execute each enqueued method after the previous function calls the provided next(err, data [, ...]).

In many cases forEachAsync or forAllAsync will be a better alternative.


  • Sequence.create(defaultContext=null)
  • then(function callback(next, err, data [, ...]) {}, context) - add a callback onto the queue
    • begins or resumes the queue
    • passes the results of the previous function into the next

Node.js Installation

Node.JS (Server):

npm install sequence

Browser Installation

You can install from bower:

bower install sequence

Or download the raw file from


Or build with pakmanager:

pakmanager build sequence


(function (exports) {
  'use strict';
  var Sequence = exports.Sequence || require('sequence').Sequence
    , sequence = Sequence.create()
    , err
    .then(function (next) {
      setTimeout(function () {
        next(err, "Hi", "World!");
      }, 120);
    .then(function (next, err, a, b) {
      setTimeout(function () {
        next(err, "Hello", b);
      }, 270);
    .then(function (next, err, a, b) {
      setTimeout(function () {
        console.log(a, b);
      }, 50);
// so that this example works in browser and node.js 
}('undefined' !== typeof exports && exports || new Function('return this')()));