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

210
Visualizações
Javascript: evitar la dependencia circular del módulo (¿problema de organización?)

Estoy completamente perplejo sobre cómo evitar esta dependencia circular. Tengo un módulo TS que envía correos electrónicos y uno que maneja errores. El controlador de errores escribe en una base de datos y envía correos electrónicos. Y el remitente de correo electrónico debe poder manejar los errores. Entonces, la mayoría de las aplicaciones usan ambos.

Por ejemplo, algo como:

emailer.js

 import err from "error-handler.js" function sendEmail() { try { trySendEmail() } catch(e) { err(e) } }

manejador de errores.js

 import sendEmail from "emailer.js" function err(e) { sendEmail("Error Occurred", e) }

¿Hay una manera correcta de manejar esta situación? ¡Gracias por tu ayuda!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

a) no hay absolutamente ninguna razón para no usar una dependencia circular aquí: los dos módulos dependen el uno del otro, y el código que ha escrito funciona tal cual con los módulos ES6, sin ningún problema. No es diferente de poner ambas declaraciones de funciones en el mismo archivo.

b) romper la cadena de dependencia y usar la inyección de dependencia en su lugar. o tener

 // emailer.js function sendEmail(text, handleError) { try { trySendEmail(text) } catch(e) { handleError(e) } }
 // error-handler.js import sendEmail from "emailer.js" function err(e) { sendEmail("Error Occurred: "+e.message, err) }

o

 // emailer.js import err from "error-handler.js" function sendEmail(text) { try { trySendEmail(text) } catch(e) { err(e, sendEmail) } }
 // error-handler.js function err(e, sendEmail) { sendEmail("Error Occurred: "+e.message) }

Si aún necesita usar ambos en su proyecto, sin inyectar una dependencia en ninguno, necesitará un tercer módulo que dependa de ambos y exporte una función con la dependencia inyectada.

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