You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
'use strict'; |
|
|
|
if (typeof process === 'undefined' || |
|
!process.version || |
|
process.version.indexOf('v0.') === 0 || |
|
process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { |
|
module.exports = { nextTick: nextTick }; |
|
} else { |
|
module.exports = process |
|
} |
|
|
|
function nextTick(fn, arg1, arg2, arg3) { |
|
if (typeof fn !== 'function') { |
|
throw new TypeError('"callback" argument must be a function'); |
|
} |
|
var len = arguments.length; |
|
var args, i; |
|
switch (len) { |
|
case 0: |
|
case 1: |
|
return process.nextTick(fn); |
|
case 2: |
|
return process.nextTick(function afterTickOne() { |
|
fn.call(null, arg1); |
|
}); |
|
case 3: |
|
return process.nextTick(function afterTickTwo() { |
|
fn.call(null, arg1, arg2); |
|
}); |
|
case 4: |
|
return process.nextTick(function afterTickThree() { |
|
fn.call(null, arg1, arg2, arg3); |
|
}); |
|
default: |
|
args = new Array(len - 1); |
|
i = 0; |
|
while (i < args.length) { |
|
args[i++] = arguments[i]; |
|
} |
|
return process.nextTick(function afterTick() { |
|
fn.apply(null, args); |
|
}); |
|
} |
|
} |
|
|
|
|