import Snippet from '../../components/layouts/snippet' import { withRouter } from 'next/router'
export const meta = { "title": "sleep() in JavaScript with Sleep.js", "categories": ["technology"], "publishedAt": "2018-12-10", "published": true, "tags": "sleep delay pause wait", "summary": "Make your JavaScript code sleep(), wait() or delay() it.", }
export default withRouter(({ children, router }) => ( {children} ))
A safe way to make your JavaScript sleep. Be cautious when using it during iteration. Works fine when using traditional for
loops, but won't work inside a .map
or .reduce
for example.
module.exports = milliseconds => {
return new Promise(resolve => setTimeout(resolve, milliseconds));
};
The function returns a promise that is resolved when the timeout is reached.
Use it like this:
const sleep = require('./sleep')
const f = async () => {
console.time('test')
await sleep(5000)
console.timeEnd('test')
}