UNPKG

607 BJavaScriptView Raw
1module.exports =
2 typeof setImmediate === "function"
3 ? setImmediate
4 : (function() {
5 var queue = [];
6 var win = window;
7 var msg = "" + Math.random();
8 win.addEventListener("message", function(ev) {
9 if (ev.data === msg) {
10 var callbacks = queue;
11 queue = [];
12 for (var i = 0; i < callbacks.length; i++) {
13 callbacks[i]();
14 }
15 }
16 });
17 return function(callback) {
18 if (queue.push(callback) === 1) {
19 win.postMessage(msg, "*");
20 }
21 };
22 })();