mirror of
https://github.com/denoland/deno.git
synced 2024-12-01 16:51:13 -05:00
1e2581e57b
This PR adds the experimental `scheduler` APIs in Node's `timers/promises` module. See https://nodejs.org/api/timers.html#timerspromisesschedulerwaitdelay-options Fixes https://github.com/denoland/deno/issues/24800
20 lines
563 B
TypeScript
20 lines
563 B
TypeScript
// 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 scheduler = {
|
|
async wait(delay: number, options?: { signal?: AbortSignal }): Promise<void> {
|
|
return await setTimeout(delay, undefined, options);
|
|
},
|
|
yield: setImmediate,
|
|
};
|
|
|
|
export default {
|
|
setTimeout,
|
|
setImmediate,
|
|
setInterval,
|
|
};
|