Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

290
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda