Spaces:
Runtime error
Runtime error
; | |
var isValue = require("es5-ext/object/is-value") | |
, isPromise = require("es5-ext/object/is-promise") | |
, nextTick = require("next-tick") | |
, ensureTimeout = require("../valid-timeout"); | |
module.exports = function (/* timeout */) { | |
var Constructor = isPromise(this) ? this.constructor : Promise; | |
var timeout = arguments[0]; | |
if (isValue(timeout)) timeout = ensureTimeout(timeout); | |
return new Constructor(function (resolve) { | |
if (isValue(timeout)) { | |
setTimeout(function () { | |
resolve(); | |
}, timeout); | |
} else { | |
nextTick(resolve); | |
} | |
}); | |
}; | |