@lifaon/rx-js-light
Version:
Blazing fast Observables
20 lines (19 loc) • 475 B
JavaScript
import {clearImmediate} from "./set-immediate.mjs";
import {TASKS} from "./tasks.constant.mjs";
let taskRunning = false;
export function runTask(handle) {
if (taskRunning) {
setTimeout(runTask, 0, handle);
} else {
if (TASKS.has(handle)) {
const task = TASKS.get(handle);
taskRunning = true;
try {
task.callback.apply(void 0, task.args);
} finally {
clearImmediate(handle);
taskRunning = false;
}
}
}
}