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

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

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