Advertisement
framp

composeAsync

Apr 24th, 2014
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function composeAsync(){
  2.   var stack = Array.prototype.slice.call(arguments);
  3.   var callback = function(err){
  4.     var args = Array.prototype.slice.call(arguments);
  5.     args.shift();
  6.     args.push(null);
  7.     exec.apply(this, args)
  8.   };
  9.   var originalCallback;
  10.   var exec = function(){
  11.     var args = Array.prototype.slice.call(arguments);
  12.     var passedCallback = args.pop();
  13.     if (!originalCallback)
  14.       originalCallback = passedCallback;
  15.     if (stack.length===1)
  16.       args.push(originalCallback);
  17.     else
  18.       args.push(callback);
  19.     stack.shift().apply(this, args);
  20.   };
  21.   return exec;
  22. }
  23. composeAsync(function($, query, callback){
  24.       console.log('foo', $, query);
  25.       callback(null, $, query);
  26.     }, function($, query, callback){
  27.       console.log('bar', $, query);
  28.       callback(null, $, query);
  29.     })({foo:1, bar:2}, "foobar", function(){ console.log(arguments); })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement