GitXplorerGitXplorer
j

awaitable-timers

public
22 stars
0 forks
0 issues

Commits

List of commits on branch main.
Verified
d3027a687d026f5f11fefdea2e16197634932938

Initial commit

jjasnell committed 4 years ago

README

The README file for this repository.

Node.js awaitable timers

Extracts the Node.js awaitable timers (from require('timers/promises')) implementation from Node.js.

See: https://nodejs.org/dist/latest-v15.x/docs/api/timers.html#timers_timers_promises_api for details.

Should also work in most modern browsers. The implementation does make use of newer JavaScript features such as optional chaining, trailing commas, argument defaults and spread operators.

Pull requests welcome if someone wants to contribute tests or fixes

Examples

const {
  setTimeout,
  setImmediate,
  setInterval
} = require('awaitable-timers');

async function foo() {
  await setTimeout(1000);
  console.log('hello world after 1 second');
}

async function bar() {
  await setImmediate();
  console.log('hello world after 1 event loop tick');
}

async function baz() {
  for await (const _ of setInterval(1000)) {
    console.log('outputs once per second');
  }
}

Also available as ESM:

import {
  setTimeout,
  setImmediate,
  setInterval
} from 'awaitable-timers';

License

MIT License (see https://github.com/nodejs/node/blob/master/LICENSE)