I'm developing a console script for personal needs. I need to be able to pause for an extended amount of time, but, from my research, Node.js has no way to stop as required. It’s getting hard to read users’ information after a period of time... I’ve seen some code out there, but I believe they have to have other code inside of them for them to work such as:
setTimeout(function() { }, 3000);
However, I need everything after this line of code to execute after the period of time.
For example,
// start of code console.log('Welcome to my console,'); some-wait-code-here-for-ten-seconds... console.log('Blah blah blah blah extra-blah'); // end of code
I've also seen things like
yield sleep(2000);
But Node.js doesn't recognize this.
How can I achieve this extended pause?
Syntax: setTimeout(function, milliseconds); Below example illustrate the approach of pausing the NOdeJS by using setTimeout() function: Example: This function uses setTimeout() under the hood and shows geek!
The standard way of creating a delay in JavaScript is to use its setTimeout method. For example: console. log("Hello"); setTimeout(() => { console.
The setTimeout function is found in the Timers module of Node. js.
Update Jan 2021: You can even do it in the Node REPL interactive using --experimental-repl-await
flag
$ node --experimental-repl-await > const delay = ms => new Promise(resolve => setTimeout(resolve, ms)) > await delay(1000) /// waiting 1 second.
A new answer to an old question. Today ( Jan 2017 June 2019) it is much easier. You can use the new async/await
syntax. For example:
async function init() { console.log(1); await sleep(1000); console.log(2); } function sleep(ms) { return new Promise((resolve) => { setTimeout(resolve, ms); }); }
For using async/await
out of the box without installing and plugins, you have to use node-v7 or node-v8, using the --harmony
flag.
Update June 2019: By using the latest versions of NodeJS you can use it out of the box. No need to provide command line arguments. Even Google Chrome support it today.
Update May 2020: Soon you will be able to use the await
syntax outside of an async function. In the top level like in this example
await sleep(1000) function sleep(ms) { return new Promise((resolve) => { setTimeout(resolve, ms); }); }
The proposal is in stage 3. You can use it today by using webpack 5 (alpha),
More info:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With