nanotask
Version:
Microtask queue scheduler for the browser
18 lines (14 loc) • 359 B
JavaScript
module.exports = nanotask
function nanotask () {
var node = document.createTextNode('')
var queue = []
var i = 0
new window.MutationObserver(function () {
for (var i = 0; i < queue.length; i++) queue[i]()
queue = []
}).observe(node, { characterData: true })
return function (fn) {
queue.push(fn)
node.data = (i = ++i % 2)
}
}