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')
}