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

144
Views
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 answers
Answer question

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