# nanodelay **Repository Path**: mirrors_ai/nanodelay ## Basic Information - **Project Name**: nanodelay - **Description**: A tiny (37 bytes) Promise wrapper around setTimeout - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-01-26 - **Last Updated**: 2025-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Nano Delay A tiny `Promise` wrapper around `setTimeout` for JavaScript. Returns a `Promise` and resolve it after a specific amount of time. * Only **45 bytes** (minified and gzipped), 10 times smaller than [`delay`] library. * Has good **ES modules** and **TypeScript** support. ```js import { delay } from 'nanodelay' async function foo () { await delay(300) // Executed after 300 milliseconds } delay(300).then(() => { // Executed after 300 milliseconds }) ``` [`delay`]: https://github.com/sindresorhus/delay Sponsored by Evil Martians ## Usage The second argument will be used in `Promise` as resolved value (useful to pass variables between scopes): ```js createClient().then(client => { expect(client).toBeOK return delay(50, client) }).then(client => { expect(client).toBeConnected() }) ``` For quick hacks you can load Nano Delay from CDN. Do not use it in production because of low performance. ```js import { delay } from 'https://cdn.jsdelivr.net/npm/nanodelay/index.js' ``` ## Future Node.js 16+ has built-in Promise-based `setTimeout`. After January 2023 you can remove `nanodelay` from your dependencies. ```js import { setTimeout } from 'timers/promises' await setTimeout(5000) ```