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

255
Vistas
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 Respuestas
Responde la pregunta

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