Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

138
Vistas
Estoy tratando de recibir información en la consola (js)

¿Cómo obtengo la entrada del usuario y LUEGO ejecuto el código? Mi código no me deja responder, y simplemente continúa.

Intenta ejecutar esto en el nodo:

 const readline = require("readline").createInterface({ input: process.stdin, output: process.stdout, }); function sleep(milliseconds) { const date = Date.now(); let currentDate = null; do { currentDate = Date.now(); } while (currentDate - date < milliseconds); } let num1 = 0; let num2 = 0; let mode = "+"; let ans = 0; let input = ""; while (true) { num1 = Math.floor(Math.random() * 10); num2 = Math.floor(Math.random() * 10); ans = num1 + num2; console.log(`What is ${num1} + ${num2}?`); readline.question("Enter Answer >>", (ans) => { readline.close(); }); sleep(3000); if (ans == input) { console.log("Correct!"); } else { console.log("Wrong! Review this video for help: *insert youtube link*."); console.log(`Answer: ${ans}`); } sleep(3000); }

Si esta pregunta no está clara, por favor dígame e intentaré explicar lo que quiero decir.

Cómo debería funcionar (escrito en python):

 import random n1 = 0 n2 = 0 ans = 0 userinput = "" while True: n1 = random.randrange(0, 10) n2 = random.randrange(0, 10) ans = n1 + n2 userinput = input(f'What is {str(n1)} + {str(n2)}? >> ') if int(userinput) == ans: print("Correct!") else: print("Wrong!")
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Una diferencia clave entre node.js y Python que debe comprender desde el principio es que node.js no bloquea en absoluto: no puede bloquear el hilo principal (o en el caso de solo Javascript) esperando la entrada del usuario. Por lo tanto, debe escribir el programa de manera diferente, porque el nodo no está hecho para escribir ese tipo de programa.

Esto debería hacer el truco:

 const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.on('close', () => { process.exit(0); }); function askQuestion(num1, num2) { return new Promise(resolve => { rl.question(`What is ${num1} + ${num2}? (press q to quit)`, input => { resolve(input); }); }); } function sleep(n) { return new Promise(resolve => setTimeout(resolve, n)); } async function turn() { const num1 = Math.floor(Math.random() * 10); const num2 = Math.floor(Math.random() * 10); const userInput = await askQuestion(num1, num2); if (userInput === "q") return userInput; if (+userInput === num1 + num2) { console.log('correct'); } else { console.log('wrong'); } } (async function() { let result; while (true) { result = await turn(); if (result === "q") break; await sleep(3000); } rl.close(); })();

Esto puede parecer largo y complejo en comparación con la versión de Python que publicaste, pero si realmente escribiste el programa de Python equivalente usando asyncio, Futures y un bucle de eventos, se parecería mucho más a este.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda