1 | module.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 | })();
|