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

257
Views
Emisores vs función de importación en JS modular: cuál elegir

Podemos comunicarnos entre módulos por:

  1. Uso de un emisor de eventos
  2. Importación de la función desde un módulo externo

¿Existe alguna práctica recomendada a la hora de elegir entre los dos?

Entiendo que solo podemos importar la función si necesitamos usar un valor devuelto. Pero, cuando no lo hacemos, ¿cómo decidimos si importamos la función o usamos un emisor de eventos para activar la misma función?

(En caso de que importe, estoy hablando de módulos JS front-end para combinar con algo como Rollupjs)

Ejemplo de importación

 //app.js import { say } from 'actions.js'; function demo(){ .... say('Hello'); }
 //say.js export function say(content){ console.log(content); }

Ejemplo de emisor de eventos

 //app.js import { eventEmitter } from 'eventEmitter.js'; import 'say.js'; function demo(){ .... eventEmitter.emit('say', 'hello'); }
 //say.js import { eventEmitter } from 'eventEmitter.js'; eventEmitter.on('say', say); function say(content){ console.log(content); }

La ventaja que veo al usar Event Emitters es que podemos evitar dependencias circulares durante la compilación. Pero me encantaría ver lo que otras personas piensan sobre esto.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Dos cosas que mencionas tienen diferentes propósitos.
Las importaciones se utilizan para la separación de códigos y una mejor estructura del proyecto, mientras que los emisores de eventos se utilizan como un bus de eventos.
Algunas cosas a considerar son:

  • cuando usa (o usa en exceso) el bus de eventos, su código rápidamente se vuelve difícil de mantener y su código se convierte en un montón de declaraciones if/else (en su ejemplo particular, la lógica puede terminar duplicada en múltiples devoluciones de llamada);
  • cuando usa importaciones, tiene 1 lugar donde vive el código y según la especificación de ESModules, los navegadores deben asegurarse de que el código se importe (descargue a través de la red) solo una vez, sin importar cuántas veces use import {something} from 'somewhere' en una sola página.

Entiendo que solo podemos importar la función si necesitamos usar un valor devuelto.

Esto simplemente no es cierto, puede importar funciones que no devuelven nada. Por ejemplo, modifican el objeto que pasas a esa función o ese código es una especie de registrador especial.

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!