D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
lib
/
node_modules
/
pm2
/
node_modules
/
js-git
/
lib
/
Filename :
defer.js
back
Copy
"use strict"; var timeouts, messageName; // node.js if (typeof process === "object" && typeof process.nextTick === "function") { module.exports = process.nextTick; } // some browsers else if (typeof setImmediate === "function") { module.exports = setImmediate; } // most other browsers else { timeouts = []; messageName = "zero-timeout-message"; window.addEventListener("message", handleMessage, true); module.exports = function (fn) { timeouts.push(fn); window.postMessage(messageName, "*"); }; } function handleMessage(event) { if (event.source == window && event.data == messageName) { event.stopPropagation(); if (timeouts.length > 0) { var fn = timeouts.shift(); fn(); } } }