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

99
Visualizações
Pregunta de rendimiento de la función Javascript con promesas

Tengo dos promesas ejecutándose al final del código principal, pero una se ejecuta en el catch usando una función de flecha y la otra se ejecuta directamente, ¿sabes la diferencia entre una y otra?

 const main = async () => { const promisseTeste1 = () => new Promise((resolve, reject) => { reject("ERRO") }); const promisseTeste2 = () => new Promise((resolve, reject) => { promisseTeste1().then().catch(reject) }); // Method 1 promisseTeste2().then().catch(console.log) // Method 2 promisseTeste2().then().catch(e => console.log(e)) } main()

Quería saber si hay algún problema de rendimiento o incluso un posible problema que pueda ocurrir con el método 1.

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

0

Si está utilizando console.log , entonces en cualquier navegador que no esté completamente obsoleto, no habrá ningún problema.

En algunos navegadores muy antiguos, llamar a console.log con algo que no sea un contexto de llamada de console era un problema, pero muchos considerarían que esto no es algo por lo que valga la pena preocuparse.

Para el caso general de pasar una función ya declarada en lugar de crear una función en línea anónima, un problema potencial es (similar al anterior) this valor dentro de la devolución de llamada si se pasa/llama a un método de objeto. El valor this será el objeto cuando se invoque en línea, y globalThis (o undefined en modo estricto) si se pasa directamente.

 const obj = { prop: 'val', method() { console.log(this.prop); } }; const main = async () => { // Method 1 Promise.reject().then().catch(obj.method) // Method 2 Promise.reject().then().catch(e => obj.method(e)) } main()

Aunque no está relacionado con el núcleo de su pregunta, como puede ver en el fragmento anterior, he evitado el antipatrón de construcción Promise explícito y le recomiendo que haga lo mismo.

si hay algún problema de rendimiento

No remotamente. A menos que esté en un ciclo cerrado o esté realizando múltiples manipulaciones DOM, es casi seguro que ni siquiera vale la pena considerar el rendimiento de un segmento de código; es mejor centrarse en la legibilidad y el mantenimiento del código.

Para el problema aún más general de hacer .method(callback) en lugar de .method(value => callback(value)) , tenga cuidado con las funciones cuyo comportamiento cambia según la cantidad de argumentos que se pasan (razón por la cual .map(parseInt) no funciona ) Afortunadamente, esto no es un problema con .then y .catch , porque solo pasan un argumento a la devolución de llamada.

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