import extensions = require("node-array-ext"); var array: Array = [ "hello", "world", "test" ]; var result: string = ""; var finish = function(err?: Error) { if(err) { console.log(err); } else { console.log(result); } } function each(i: number, element: string, next: (err?: Error) => void): void { setTimeout(function() { console.log("%s => %s", i, element); result += element + " "; next(); }, 50 * (array.length - i)); } extensions.asyncEach(array, each, finish); extensions.awaitEach(array, each, finish);