Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

252
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda