1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-28 16:20:57 -05:00

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); 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 { export default {
setTimeout, setTimeout,
clearTimeout, clearTimeout,
@ -97,4 +113,5 @@ export default {
setImmediate, setImmediate,
setUnrefTimeout, setUnrefTimeout,
clearImmediate, clearImmediate,
promises,
}; };

View file

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