Good bye sleep() and delay() with NodeJS, hello setTimeout()

November 27, 2023

I have seen and added many times in nodeJS codebases the following snippet:

const sleep = (ms) =>
  new Promise((resolve) => setTimeout(resolve, ms));

Well, today I learned that nodeJS has a native API for that: setTimeout().

// https://nodejs.org/api/timers.html#timerspromisessettimeoutdelay-value-options
import { setTimeout } from 'node:timers/promises';

await setTimeout(2000); // sleep 2s

So time to stop to use home-made utilities sleep() and delay(), and use the native nodeJS timers API!

Note: Use import { setTimeout as sleep } from 'node:timers/promises'; to call sleep() instead of setTimeout() if you want the name to be clearer.