Files
NativeScript/packages/core/utils/macrotask-scheduler.ts
Martin Guillon 1a849f9302 fix: Prior PR (#8904) has bad path for trace modules
* Fix trace path issue

* another path fix
2020-11-12 14:23:03 -06:00

28 lines
673 B
TypeScript

import { Trace } from '../trace';
import { dispatchToMainThread } from './mainthread-helper';
let scheduled = false;
let macroTaskQueue: Array<() => void> = [];
function drainMacrotaskQueue() {
const currentQueue = macroTaskQueue;
macroTaskQueue = [];
scheduled = false;
currentQueue.forEach((task) => {
try {
task();
} catch (err) {
const msg = err ? err.stack || err : err;
Trace.write(`Error in macroTask: ${msg}`, Trace.categories.Error, Trace.messageType.error);
}
});
}
export function queueMacrotask(task: () => void): void {
macroTaskQueue.push(task);
if (!scheduled) {
scheduled = true;
dispatchToMainThread(drainMacrotaskQueue);
}
}