Skip to content

dguo/sleep-ts

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
dev
 
 
 
 
 
 
 
 
 
 
 
 

sleep-ts

npm license bundle size CI status test coverage known vulnerabilities

Pause JavaScript execution for a specified amount of time using Promises. Works elegantly with async/await and accepts flexible time formats like '3s' and '1h' (any string that can be parsed by the ms package). Implemented in TypeScript.

Installation

$ yarn add sleep-ts
# or
$ npm install --save sleep-ts

Usage

import {sleep} from 'sleep-ts';
// or
const sleep = require('sleep-ts').sleep;

// With async/await
(async function slowHelloWorld() {
    console.log('Hello');

    // a number argument is treated as milliseconds, so this will
    // sleep for 1 second
    await sleep(1000);

    // a string argument is parsed, so this will sleep for 2 seconds
    await sleep('2s');

    console.log('World');
})()

// With raw Promises
sleep(4000).then(() => {
    console.log('PING');

    // If you pass a second argument, the sleep Promise will
    // resolve with the given value.
    return sleep(3000, 'PONG');
}).then(response => {
    console.log(response);
});

Output:

Hello
# 3 seconds later
World
# 1 second later
PING
# 3 seconds later
PONG

Alternatives

  • If you don't care about the fancy time format parsing, you can use sleep-promise, which might save you a subdependency on the ms package.
  • Use setTimeout if you're okay with using callbacks.

Other Languages

License

MIT