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.
$ yarn add sleep-ts
# or
$ npm install --save sleep-ts
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
- 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.
- C#: Thread.Sleep
- C++: std::this_thread::sleep_for (since C++11; otherwise, check out these methods)
- Go: time.Sleep
- Java: Thread.sleep
- Perl: sleep
- PHP: sleep
- Python: time.sleep
- R: Sys.sleep
- Ruby: sleep
- Rust: std::thread::sleep