получение результирующих данных обработка ошибок при выборке

#javascript #fetch

#javascript #выборка

Вопрос:

Я искал это снова и снова, но не могу найти правильный ответ

Используя выборку, чтобы выдавать ошибки при получении статуса, отличного от ok, мы должны сделать это вручную. Серверная часть предоставляет конкретное сообщение об ошибке в виде кода ошибки 401,404 и т.д. Я хочу получить к нему доступ при моей выборке, но не знаю как.

             .then((response) => {
                if (response.ok) {
                    return response.text();
                }
                else {
                    throw new Error(response.text()); ///THIS DOES NOT WORK. 
                }
            })
            .then(result => alert ("Added Successfully"))
            .catch(error =>alert (error.message)); ///AND OF COURSE NEITHER DOES THIS.
  

Комментарии:

1. попробуйте console.log(error) сначала посмотреть, как выглядит ошибка, затем вы можете указать свойства, к которым хотите получить прямой доступ

2. спасибо за ваш ответ! console.log (ошибка) выдает ошибку: [обещание объекта]

Ответ №1:

Вы должны записать свой ответ в консоль и посмотреть, что он содержит. Вы также должны получить доступ к объекту ответа следующим образом: response.text. Вы получаете к нему доступ как к функции. Вероятно, вам также придется проанализировать ответ, прежде чем вы получите доступ к чему-либо. Даже если вы не опубликовали содержимое ответа, следующий фрагмент должен указать вам правильное направление.

Проверьте фрагмент ниже, который показывает вам успешную обработку ошибок.

 fetch("http://httpstat.us/404")
  .then( response => {
    if (!response.ok) {
      throw new Error(response)
    }
    return response.json() 
  })
  .catch( err => {
    console.log(err.message);
  })  

Комментарии:

1. Спасибо за ваш ответ. Когда я запускаю это, консоль. журнал выводит [object Promise] не фактическое сообщение?