Skip to content

Instantly share code, notes, and snippets.

@Gaubee
Created July 16, 2014 14:13
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Gaubee/b331a3f869a85525feb4 to your computer and use it in GitHub Desktop.
Save Gaubee/b331a3f869a85525feb4 to your computer and use it in GitHub Desktop.
使用postMessage来模拟setImmediate
// We use setImmediate or postMessage for our future callback.
var setImmediate = window.msSetImmediate;
// Use post message to emulate setImmediate.
if (!setImmediate) {
var setImmediateQueue = [];
var sentinel = String(Math.random());
window.addEventListener('message', function(e) {
if (e.data === sentinel) {
var queue = setImmediateQueue;
setImmediateQueue = [];
queue.forEach(function(func) {
func();
});
}
});
setImmediate = function(func) {
setImmediateQueue.push(func);
window.postMessage(sentinel, '*');
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment