Blame view

node_modules/run-async/index.js 555 Bytes
f7563de62   Palak Handa   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  'use strict';
  
  var once = require('once');
  
  /**
   * Run a function asynchronously or synchronously
   * @param   {Function} func  Function to run
   * @param   {Function} cb    Callback function passed the `func` returned value
   * @...rest {Mixed}    rest  Arguments to pass to `func`
   * @return  {Null}
   */
  
  module.exports = function (func, cb) {
    var async = false;
    var answer = func.apply({
      async: function () {
        async = true;
        return once(cb);
      }
    }, Array.prototype.slice.call(arguments, 2) );
  
    if (!async) {
      cb(answer);
    }
  };