Sha256: cc91aca5b66788252bb01207ec797419eb4add90b88740395e818d12fc77bf87

Contents?: true

Size: 599 Bytes

Versions: 91

Compression:

Stored size: 599 Bytes

Contents

var defer = require('./defer.js');

// API
module.exports = async;

/**
 * Runs provided callback asynchronously
 * even if callback itself is not
 *
 * @param   {function} callback - callback to invoke
 * @returns {function} - augmented callback
 */
function async(callback)
{
  var isAsync = false;

  // check if async happened
  defer(function() { isAsync = true; });

  return function async_callback(err, result)
  {
    if (isAsync)
    {
      callback(err, result);
    }
    else
    {
      defer(function nextTick_callback()
      {
        callback(err, result);
      });
    }
  };
}

Version data entries

91 entries across 89 versions & 22 rubygems

Version Path
clapton-0.0.26 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.25 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.24 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.23 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.22 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.21 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.20 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.19 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.18 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.17 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.16 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.15 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.14 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.13 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.12 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.11 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.10 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.9 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.8 lib/clapton/javascripts/node_modules/asynckit/lib/async.js
clapton-0.0.7 lib/clapton/javascripts/node_modules/asynckit/lib/async.js