| 'use strict'; |
| |
| Object.defineProperty(exports, "__esModule", { |
| value: true |
| }); |
| |
| var _setImmediate = require('./internal/setImmediate'); |
| |
| /** |
| * Calls `callback` on a later loop around the event loop. In Node.js this just |
| * calls `process.nextTick`. In the browser it will use `setImmediate` if |
| * available, otherwise `setTimeout(callback, 0)`, which means other higher |
| * priority events may precede the execution of `callback`. |
| * |
| * This is used internally for browser-compatibility purposes. |
| * |
| * @name nextTick |
| * @static |
| * @memberOf module:Utils |
| * @method |
| * @see [async.setImmediate]{@link module:Utils.setImmediate} |
| * @category Util |
| * @param {Function} callback - The function to call on a later loop around |
| * the event loop. Invoked with (args...). |
| * @param {...*} args... - any number of additional arguments to pass to the |
| * callback on the next tick. |
| * @example |
| * |
| * var call_order = []; |
| * async.nextTick(function() { |
| * call_order.push('two'); |
| * // call_order now equals ['one','two'] |
| * }); |
| * call_order.push('one'); |
| * |
| * async.setImmediate(function (a, b, c) { |
| * // a, b, and c equal 1, 2, and 3 |
| * }, 1, 2, 3); |
| */ |
| var _defer; |
| |
| if (_setImmediate.hasNextTick) { |
| _defer = process.nextTick; |
| } else if (_setImmediate.hasSetImmediate) { |
| _defer = setImmediate; |
| } else { |
| _defer = _setImmediate.fallback; |
| } |
| |
| exports.default = (0, _setImmediate.wrap)(_defer); |
| module.exports = exports['default']; |