Files
biomedjs/node_modules/bluebird/js/main/schedule.js

40 lines
1.3 KiB
JavaScript
Raw Normal View History

2015-04-20 05:31:12 -04:00
"use strict";
var schedule;
var noAsyncScheduler = function() {
throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/m3OTXk\u000a");
};
if (require("./util.js").isNode) {
var version = process.versions.node.split(".").map(Number);
schedule = (version[0] === 0 && version[1] > 10) || (version[0] > 0)
? global.setImmediate : process.nextTick;
if (!schedule) {
if (typeof setImmediate !== "undefined") {
schedule = setImmediate;
} else if (typeof setTimeout !== "undefined") {
schedule = setTimeout;
} else {
schedule = noAsyncScheduler;
}
}
} else if (typeof MutationObserver !== "undefined") {
schedule = function(fn) {
var div = document.createElement("div");
var observer = new MutationObserver(fn);
observer.observe(div, {attributes: true});
return function() { div.classList.toggle("foo"); };
};
schedule.isStatic = true;
} else if (typeof setImmediate !== "undefined") {
schedule = function (fn) {
setImmediate(fn);
};
} else if (typeof setTimeout !== "undefined") {
schedule = function (fn) {
setTimeout(fn, 0);
};
} else {
schedule = noAsyncScheduler;
}
module.exports = schedule;