Files
pezkuwi-common/packages/util/src/nextTick.ts
T
Satoshi Qazi MuhammedandClaude Opus 5.5 bebfcee609 Bring license headers to 2026
The header rule takes the current year as the end of the range, as upstream's
does; 581 sources still ended at 2025, which failed lint. Lint never ran to
completion here, so this went unseen.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-07 19:21:45 +04:00

27 lines
806 B
TypeScript

// Copyright 2017-2026 @pezkuwi/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
/**
* @name nextTick
* @description Defer the operation to the queue for evaluation on the next tick
*/
export function nextTick (onExec: () => unknown, onError?: (error: Error) => unknown): void {
// While Promise.resolve().then(...) would defer to the nextTick, this
// actually does not play as nicely in browsers like the setTimeout(...)
// approach. So the safer, though less optimal approach is the one taken here
setTimeout((): void => {
Promise
.resolve()
.then((): void => {
onExec();
})
.catch((error: Error): void => {
if (onError) {
onError(error);
} else {
console.error(error);
}
});
}, 0);
}