React JS | Перекрестная выборка получить весь код статуса

Я использую Перекрестная выборка для вызовов API ReactJS

Есть ли способ захватить 400, 401 и 403 в ответе на выборку.

Вот пример кода использования выборки

fetch('https://jsonplaceholder.typicode.com/posts', {
  method: 'POST',
  body: JSON.stringify({
    title: 'foo',
     body: 'bar',
     userId: 1
   }),
   headers: {
     "Content-type": "application/json; charset=UTF-8"
   }
})
.then(response => response.json())
.then(json => console.info(json))

Попробуй добавить в первый then: .then(response => { if (response.status===400) { console.info('status 400'); } return response.json() }

Henkan 13.07.2018 16:24
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
489
1

Ответы 1

Вы можете проверить код состояния в обратном вызове, предоставленном первому then:

fetch('https://jsonplaceholder.typicode.com/posts', {
  method: 'POST',
  body: JSON.stringify({
    title: 'foo',
    body: 'bar',
    userId: 1
  }),
  headers: {
    "Content-type": "application/json; charset=UTF-8"
  }
})
.then(response => {
  if ([400, 401, 403].includes(response.status)) {
    throw new Error('Response status was 400, 401, or 403!');
  }

  return response.json();
})
.then(json => console.info(json))
.catch(error => console.error(error))

Это не сработало, как ожидалось. Это не показало сообщение. получил ошибку 400 на консоли не по коду.

Selvin 13.07.2018 16:33

@Selvin Это работает, когда я пробую. Вы уверены, что тестируете правильный код? Я обновил ответ, указав способ выдачи ошибки, и вместо этого зарегистрирую его в catch.

Tholle 13.07.2018 16:37

это должно сработать, оно используется точно так же, как и в первом примере Прочти меня. Если он не делает то, что вы хотите, это либо потому, что вам неясно, что вы хотите, либо вы делаете что-то в другом месте своего кода, что нарушает этот пример.

Logar 13.07.2018 16:38

попытался с обновленным кодом получить ошибку, например Network request failed при улове

Selvin 13.07.2018 16:39

@Selvin Тогда это что-то еще, что делает запрос неуспешным. Обратный вызов then никогда не запускается.

Tholle 13.07.2018 16:55

@Tholle Если это 200, то then работает. если это 400, то catch работает

Selvin 13.07.2018 17:04

Другие вопросы по теме