feat(ext/node): export 'promises' symbol from 'node:timers' (#25589)

This commit is contained in:
Bartek Iwańczuk 2024-09-12 21:30:49 +01:00 committed by GitHub
parent e2875aee74
commit 71d5d47ca9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 10 deletions

View File

@ -89,6 +89,22 @@ export function clearImmediate(immediate: Immediate) {
clearTimeout_(immediate._immediateId);
}
export const promises = {
setTimeout: promisify(setTimeout),
setImmediate: promisify(setImmediate),
setInterval: promisify(setInterval),
};
promises.scheduler = {
async wait(
delay: number,
options?: { signal?: AbortSignal },
): Promise<void> {
return await promises.setTimeout(delay, undefined, options);
},
yield: promises.setImmediate,
};
export default {
setTimeout,
clearTimeout,
@ -97,4 +113,5 @@ export default {
setImmediate,
setUnrefTimeout,
clearImmediate,
promises,
};

View File

@ -1,17 +1,11 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
import { promisify } from "node:util";
import timers from "node:timers";
export const setTimeout = promisify(timers.setTimeout),
setImmediate = promisify(timers.setImmediate),
setInterval = promisify(timers.setInterval);
export const setTimeout = timers.promises.setTimeout;
export const setImmediate = timers.promises.setImmediate;
export const setInterval = timers.promises.setInterval;
export const scheduler = {
async wait(delay: number, options?: { signal?: AbortSignal }): Promise<void> {
return await setTimeout(delay, undefined, options);
},
yield: setImmediate,
};
export const scheduler = timers.promises.scheduler;
export default {
setTimeout,