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

668
Vistas
el parámetro se declara pero su valor nunca se lee... ¿por qué no?

Para enviar un correo electrónico, tengo un método de controlador como tal:

 const send = function (subject, template, to, options) { // VSC says about "subject": is declared but its value is never read. // VSC does not say this for the other three parameters. return new Promise(function (resolve, reject) { fs.readFile(template, "utf8", function (err, templateContent) { if (err) { return resolve(false); } var subject = subject; console.log(subject); // this is where I do read "subject" but it returns 'undefined' // (even though I am passing the function a value for the parameter) ... etc

¿Qué estoy haciendo mal? En mi opinión, he declarado un subject de parámetro y lo uso más adelante en el método del controlador.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

var subject = subject;

var subject crea una nueva variable, denominada subject en el ámbito de la función de devolución de llamada pasada a readFile .

Esto sombrea la variable de subject creada como un nombre de parámetro para la función asignada para send .

var subject = subject; por lo tanto, copia el valor del subject local (que no está undefined en ese momento) al subject (que no hace nada).

Dé a sus variables nombres diferentes incluso si hacen cosas similares.

Recomiendo el uso de un linter que puede hacer cumplir una regla como no-shadow (parece que ya está usando uno; VS Code no generará el mensaje de error, solo lo informará desde una herramienta que lo haga), así que asegúrese de activarlo. regla para esa herramienta).

about 4 years ago · Juan Pablo Isaza Denunciar

0

var dentro de la función se elevará a la parte superior, por lo que en tiempo de ejecución es:

 fs.readFile(template, "utf8", function (err, templateContent) { var subject; // ... subject = subject; //undefined });

Simplemente use otro nombre para su tema anidado como _subject y evite ensombrecer los nombres de las variables en general.

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