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

229
Visualizações
¿Por qué errorHandler de Vue no detecta el error de axios?

Configuré un controlador de errores global en main.js de Vue3:

 app.config.errorHandler = error => { console.log("catch error") }

En métodos generales, funciona bien. Por ejemplo:

 methods: { showMessage() { return new Promise((resolve, reject) => { setTimeout(() => { reject("async error!") }, 500) }) } }

Imprime catch error en la consola, pero cuando uso Axios para hacer una solicitud, no puede detectar el error Uncaught (in promise) Error de axios. Como:

 methods: { showMessage() { this.$axios.get('/wrong-url/').then(response => { console.log('wrong url') }) } }

El controlador de errores global no puede detectar el error en este momento. La consola muestra el error:

 Uncaught (in promise) Error: Request failed with status code 404

Lo he buscado en Google, pero no puedo encontrar la razón.

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

0

La promesa no se devuelve y se aísla dentro de un método, lo cual es un error. Con algunas excepciones, la cadena de promesa siempre debe conservarse, esto permite manejar los errores:

 showMessage() { return this.$axios.get('/wrong-url/').then(response => { ...

Una forma infalible es usar async... async..await porque obliga a una función a devolver una promesa:

 async showMessage() { const response = await this.$axios.get('/wrong-url/'); ...

Se puede combinar la regla linter para evitar errores con el encadenamiento de promesas.

about 4 years ago · Juan Pablo Isaza Relatório

0

config.errorHandler es para manejar errores de interfaz. Todavía tiene que crear un interceptor cuando se crea la aplicación:

 ... created() { axios.interceptors.response.use((response) => { return response; }, function(error) { // Do something ... return Promise.reject(error); }); } ...
 app.config.errorHandler = (err, instance, info) => { // Do something ... };
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