summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/timers/promises.ts
blob: 2ab2384dc2095ff272762f5d25d7360eb4a47caf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 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,
};