14 lines
444 B
JavaScript
14 lines
444 B
JavaScript
/*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
let promise;
|
|
|
|
module.exports =
|
|
typeof queueMicrotask === 'function' ?
|
|
queueMicrotask.bind(typeof window !== 'undefined' ? window : global)
|
|
// reuse resolved promise, and allocate it lazily
|
|
: (cb) =>
|
|
(promise || (promise = Promise.resolve())).then(cb).catch((err) =>
|
|
setTimeout(() => {
|
|
throw err;
|
|
}, 0)
|
|
);
|