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

195
Vistas
Declaración y expresión de la función Node Js

Empecé a aprender Node Js y luego obtuve el siguiente código en el tutorial

 const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const questions = [ "What is your name? ", "Where do you live? ", "What are you going to do with node js? " ]; const collectAnswers = (questions, done) => { const answers = []; const [firstQuestion] = questions; const questionAnswered = answer => { answers.push(answer); if (answers.length < questions.length) { rl.question(questions[answers.length], questionAnswered); } else { done(answers); } }; rl.question(firstQuestion, questionAnswered); }; collectAnswers(questions, answers => { console.log("Thank you for your answers. "); console.log(answers); process.exit(); });

El código tiene el siguiente resultado.

 What is your name? a Where do you live? b What are you going to do with node js? c Thank you for your answers. [ 'a', 'b', 'c' ]

Por lo que entiendo, la variable collectAnswer de alguna manera inyecta la función declarada a continuación en el segundo parámetro ( hecho ). ¿Alguien puede explicar lo que realmente está sucediendo detrás de escena? ¿Cómo se puede inyectar la función declarada a continuación a la variable con el mismo nombre? ¿Algún término que este patrón realmente llame?

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

0

Las funciones son objetos en JavaScript, a diferencia de otros lenguajes, por lo que puede pasarlas a funciones como argumentos y las funciones pueden recibirlas como parámetros. Esto se hace mucho para que la función a la que está llamando pueda "devolver la llamada" a su código (la función que está pasando). Una función utilizada de esta manera a menudo se denomina "devolución de llamada". Una función como collectAnswers que acepta una función a la que va a llamar de esta manera a menudo se describe como una función que "acepta una devolución de llamada".

En ese código, hay una función llamada collectAnswers y acepta dos parámetros, questions y done :

 const collectAnswers = (questions, done) => { // ^^^^^^^^^−−^^^^−−−−−−−−−−−−−−−− parameters // ... };

Al final, el código llama a collectAnswers , pasando una serie de preguntas y una nueva función creada en línea como el segundo argumento (coloqué los dos argumentos en líneas separadas para mayor claridad):

 collectAnswers( questions, // 1st argument answers => { // console.log("Thank you for your answers. "); // console.log(answers); // 2nd argument process.exit(); // } // );

Eso hace lo mismo que esto, excepto por la constante de callback de llamada:

 const callback = answers => { console.log("Thank you for your answers. "); console.log(answers); process.exit(); }; collectAnswers(questions, callback);
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