13 votes

L'attente asynchrone avec axios ne renvoie pas d'erreurs

J'utilise async await avec axios et j'ai des problèmes avec la gestion des erreurs. En utilisant des promesses normales (exemple 2 ci-dessous), je peux obtenir un objet d'erreur lorsque je tue mon serveur local. Cependant, en utilisant async await, l'objet error s'avère indéfinie (exemple 1 ci-dessous). Quelqu'un sait-il pourquoi il en est ainsi ?

const instance = axios.create({
  baseURL: 'http://localhost:8000',
  timeout: 3000,
})

// example 1
try {
   await instance.get('/data/stores')
} catch (error) {
  console.log(error) // error is not defined
}
// example 2
return instance.get('/data/stores').catch(error => {
  console.log(error) // error is normal axios error
})

17voto

borislemke Points 366

La réponse à l'erreur est stockée à l'intérieur de response propriété. Pour une raison quelconque, vous ne pouvez pas voir cela dans la console de Chrome.

Ainsi, dans votre bloc de capture, faites :

console.log(error.response)

8voto

Matthew Chung Points 48

Il s'avère que l'erreur était présente dans la capture, c'est juste que mon débogueur ne l'a pas reconnue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X