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

286
Views
Tome múltiples entradas del usuario usando readline en Node. ¿Dónde llamo a la función?

Soy un principiante completo. Entonces, aquí en Stack Overflow encontré esta solución de "Cómo tomar entradas múltiples usando readline, pero no puedo encontrar cómo aplicar esta función. Lo puse en la función principal y toma mi entrada pero no funciona Mi salida muestra NaN. ¿Alguien puede ayudarme a solucionar esto?

Aquí está mi código

 function simpleInterest (money, rate, time) { simpleInterest=money*rate*time; return simpleInterest; } let money; let rate; let time; 'use strict' const readline = require('readline') const rl = readline.createInterface({ input: process.stdin, output: process.stdout }) const question1 = () => { return new Promise((resolve, reject) => { rl.question('Total Money: ', (money) => { resolve() }) }) } const question2 = () => { return new Promise((resolve, reject) => { rl.question('Interest Rate: ', (rate) => { resolve() }) }) } const question3 = () => { return new Promise((resolve, reject) => { rl.question( 'How Many Years: ', (time) => { resolve() }) }) } const main = async () => { await question1() await question2() await question3() //Here I'm calling the Function let profit= simpleInterest(money, rate, time) console.log("total", profit) rl.close() } main()
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Te faltan un par de piezas clave en el rompecabezas de las promesas. resolve() acepta un argumento opcional, que es el valor en el que debe resolverse la promesa. Sin un argumento, la promesa se resuelve como indefinida. Sináticamente, esto se ve como resolve(money) , por ejemplo.

El segundo paso es asignar el valor de la promesa resuelta a una variable o usarlo en una expresión. const money = await question1() , por ejemplo.

Es posible evitar estos pasos asignando las variables globales que ha creado a partir de las devoluciones de llamada, pero prefiero usar promesas que mantienen las cosas en el ámbito local.

Otro matiz que es fácil pasar por alto es que la entrada del usuario se devuelve como una cadena. Puede convertir estas cadenas en números con + .

Como optimización, tiene prácticamente el mismo código tres veces con diferentes nombres de variables. Esto indica una oportunidad potencial para abstraer la lógica de una función que puede llamar con diferentes parámetros, evitando la repetición.

 const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const ask = msg => new Promise(resolve => rl.question(msg, response => resolve(response)) ); const simpleInterest = (money, rate, time) => money * rate * time ; const main = async () => { const money = await ask("Total Money: "); const rate = await ask("Interest Rate: "); const time = await ask("How Many Years: "); console.log(simpleInterest(+money, +rate, +time)); rl.close(); }; main();

Ahora, no se ha agregado el manejo de errores, por lo que es posible que desee escribir un ciclo para seguir preguntando hasta que el usuario haya ingresado un número.

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!