Skip to content

Asynchronous sleep with better time functions and typescript support

License

Notifications You must be signed in to change notification settings

simsieg/sleepjs

Repository files navigation

SleepJS

Build Status Coverage Status Downloads

Asynchronus sleep functions with typescript support.

Installation

Install sleepjs with npm:

npm install sleepjs

Or with yarn:

yarn add sleepjs

Usage

The default function sleeps for a time given in milliseconds. But also different sleep functions can be required.

Async / Await

The sleep timer can be awaited with async / await.

const { sleep } = require('sleepjs')

const myFunction = async () => {
  await sleep(500)
  console.info('It is 500 ms later now')
}

myFunction()

Promise

The Promise returns the value of slept milliseconds when it resolves.

const { sleepMinutes } = require('sleepjs')

function myFunction () {
  return sleepMinutes(5)
    .then(time => {console.info(`${time} ms later`)})
}

myFunction() // Will print: '300000 ms later'

Concurrent

Different sleep instances can be run and awaited concurrently with Promise.all.

const { sleep } = require('sleepjs')

async function myFunction () {
  await Promise.all([sleep(100), sleep(100), sleep(200)])
}

myFunction() // Will take only slightly more than 200 ms

Functions

Sleepjs includes several functions to wrap common sleep times:

const { sleep } = require('sleepjs')
const { sleepMilliseconds } = require('sleepjs') // Same as sleep
const { sleepSeconds } = require('sleepjs')
const { sleepMinutes } = require('sleepjs')
const { sleepHours } = require('sleepjs')
const { sleepDays } = require('sleepjs')

Import with typescript is also possible.

import {
  sleep,
  sleepMilliseconds,
  sleepSeconds,
  sleepMinutes,
  sleepHours,
  sleepDays,
} from 'sleepjs'