summaryrefslogtreecommitdiff
path: root/lib/internal/setImmediate.js
blob: 7d152498bae3f3e13b8983d6f0b46a3d767050a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
'use strict';
import rest from 'lodash/rest';

var _setImmediate = typeof setImmediate === 'function' && setImmediate;

var _defer;
if (_setImmediate) {
    _defer = _setImmediate;
} else if (typeof process === 'object' && typeof process.nextTick === 'function') {
    _defer = process.nextTick;
} else {
    _defer = function(fn) {
        setTimeout(fn, 0);
    };
}

export default rest(function (fn, args) {
    _defer(function () {
        fn.apply(null, args);
    });
});