*/
tasks: [],
- process: function () {
- const next = queue.tasks.shift()
- if (next == null) return queue.isIdle = true
- const { task, resolve, reject, args } = next
- queue.isIdle = !task
- task?.(...args).then(resolve).catch(reject).finally(queue.process)
- },
-
add: async function (task, ...args) {
if (typeof task !== 'function') throw new TypeError('task is not a function')
return new Promise((resolve, reject) => {
queue.tasks.unshift({ task, resolve, reject, args })
if (queue.isIdle) queue.process()
})
+ },
+
+ process: function () {
+ const next = queue.tasks.shift()
+ if (next == null) return queue.isIdle = true
+ const { task, resolve, reject, args } = next
+ queue.isIdle = !task
+ task?.(...args).then(resolve).catch(reject).finally(queue.process)
}
}