Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

587
Views
¿Cómo puedo esperar en Node.js (JavaScript)? Necesito hacer una pausa por un período de tiempo.

Estoy desarrollando un script de consola para necesidades personales. Necesito poder hacer una pausa durante un período de tiempo prolongado, pero, según mi investigación, Node.js no tiene forma de detenerse según sea necesario. Cada vez es más difícil leer la información de los usuarios después de un período de tiempo... He visto algunos códigos, pero creo que tienen que tener otros códigos dentro para que funcionen, como:

 setTimeout(function() { }, 3000);

Sin embargo, necesito que todo después de esta línea de código se ejecute después del período de tiempo.

Por ejemplo,

 // 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

También he visto cosas como

 yield sleep(2000);

Pero Node.js no reconoce esto.

¿Cómo puedo lograr esta pausa prolongada?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Actualización de enero de 2021 : incluso puede hacerlo en el Node REPL interactivo usando --experimental-repl-await

 $ node --experimental-repl-await > const delay = ms => new Promise(resolve => setTimeout(resolve, ms)) > await delay(1000) /// waiting 1 second.

Una nueva respuesta a una vieja pregunta. Hoy ( enero 2017 junio 2019) es mucho más fácil. Puede usar la nueva sintaxis async/await . Por ejemplo:

 async function init() { console.log(1); await sleep(1000); console.log(2); } function sleep(ms) { return new Promise((resolve) => { setTimeout(resolve, ms); }); }

Para usar async/await para usar sin instalar ni complementos, debe usar node-v7 o node-v8, usando el indicador --harmony .

Actualización de junio de 2019: al usar las últimas versiones de NodeJS, puede usarlo de forma inmediata. No es necesario proporcionar argumentos de línea de comandos. Incluso Google Chrome lo admite hoy.

Actualización de mayo de 2020: pronto podrá usar la sintaxis de await fuera de una función asíncrona. En el nivel superior como en este ejemplo

 await sleep(1000) function sleep(ms) { return new Promise((resolve) => { setTimeout(resolve, ms); }); }

La propuesta se encuentra en etapa 3 . Puede usarlo hoy usando webpack 5 (alfa),

Más información:

  • Bandera de armonía en Nodejs: https://nodejs.org/en/docs/es6/
  • Todas las versiones de NodeJS para descargar: https://nodejs.org/en/download/releases/
over 4 years ago · Santiago Trujillo Report

0

La solución más corta sin dependencias:

 await new Promise(resolve => setTimeout(resolve, 5000));
over 4 years ago · Santiago Trujillo Report

0

La mejor manera de hacer esto es dividir su código en múltiples funciones, como esta:

 function function1() { // stuff you want to happen right away console.log('Welcome to My Console,'); } function function2() { // all the stuff you want to happen after that pause console.log('Blah blah blah blah extra-blah'); } // call the first chunk of code right away function1(); // call the rest of the code and have it execute after 3 seconds setTimeout(function2, 3000);

Es similar a la solución de JohnnyHK , pero mucho más ordenada y fácil de extender.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!