#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? Есть ли какая-либо причина не выдавать вместо этого обобщенное сообщение об ошибке?