Luka Vidaković

One-line pause function in plain Javascript


To keep it short, this post only deals with a simple pause function:

const pause = (time) => new Promise((r) => setTimeout(r, time))

pause function returns a Promise when called. The Promise itself resolves after a specified amount of time, giving us the ability to chain some piece of code and delay it. Sort of a flow control mechanism for code execution.

If we imagine having a working implementation of fetchData function we can delay it for 2 seconds like so:

pause(2000).then(fetchData)

Or use it inside an async function to pause the execution between two lines for 1 second:

async function fetchAllData() {
  const data1 = await fetchData1(...)
  await pause(1000)
  const data2 = await fetchData2(...)
  return {...data1, ...data2}
}

Pretty powerful one-liner!