围绕setTimeout的一个微型(28字节)Promise封装

围绕setTimeout的一个微型(28字节)Promise封装

JavaScript CSS相关

访问GitHub主页

共112Star

详细介绍

Nano Delay

A tiny Promise wrapper around setTimeout for JavaScript. Returns a Promise and resolve it after a specific amount of time.

  • Only 25 bytes (minified and gzipped), 10 times smaller than delay library.
  • Has good ES modules and TypeScript support.
import { delay } from 'nanodelay'

async function foo () {
  await delay(300)
  // Executed after 300 milliseconds
}

delay(300).then(() => {
  // Executed after 300 milliseconds
})
Sponsored by Evil Martians

Usage

The second argument will be used in Promise as resolved value (useful to pass variables between scopes):

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.

import { delay } from 'https://cdn.jsdelivr.net/npm/nanodelay/index.js'