Newer
Older
vmk-demo-bot / admin / node_modules / timers-ext / promise / sleep.js
@eugene-sukhodolskiy eugene-sukhodolskiy 18 days ago 581 bytes init
"use strict";

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);
		}
	});
};