/opt/canhelp/node_modules/nanostores/task
NameSizeModeActions
index.d.ts16690644editdlrm
index.js5820644editdlrm
Edit: /opt/canhelp/node_modules/nanostores/task/index.js (582B)
let tasks = 0 let resolves = [] export function startTask() { tasks += 1 return () => { tasks -= 1 if (tasks === 0) { let prevResolves = resolves resolves = [] for (let i of prevResolves) i() } } } export function task(cb) { let endTask = startTask() let promise = cb().finally(endTask) promise.t = true return promise } export function allTasks() { if (tasks === 0) { return Promise.resolve() } else { return new Promise(resolve => { resolves.push(resolve) }) } } export function cleanTasks() { tasks = 0 }