Nuxt axios — как отклонить успешный ответ на ошибку

#axios #nuxt.js #server-side-rendering

Вопрос:

Я определяю аксиосы, как показано ниже

 $axios.onResponse((response) =gt; {  if (response.data.status == 500}  return Promise.reject(response)  } }) $axios.onError((err) =gt; {  console.log(err) })  

и в fetch я звоню

 async fetch () {  await this.$axios.$get('myapi') }  

но я получаю ошибку типа

 RangeError Maximum call stack size exceeded  

Я пытаюсь отклонить успешный ответ на ошибку, но он не работает в ssr. Как это исправить, спасибо.

Ответ №1:

Как правило, try-catch операторы using предпочтительнее обработчиков событий (где это уместно).

Попробуйте что-нибудь вроде этого:

 async fetch() {  try {  const response = await this.$axios.$get('myapi');  if (response.data.status == 500) {  throw new Error("Some error message");  } else {  // Success action here  }  } catch(err) {  console.log(err);  } }  

Есть ли какая-то особая причина, по которой вы возвращаете отклоненное обещание, когда получаете ошибку 500? Есть ли какая-либо причина не выдавать вместо этого обобщенное сообщение об ошибке?