Как сохранить в журнале все содержимое ошибки в блоке catch вызова извлечения при сбое сети - PullRequest
0 голосов
/ 01 мая 2019

Я делаю сетевой запрос в реактивном нативном проекте, используя api fetch.Он хорошо работает в нормальных условиях, но когда я в автономном режиме, блок catch просто выдаёт ошибку логирования, но когда я делаю err.message, я получаю сообщение «Ошибка сетевого запроса», я надеялся получить некоторые коды.Как я могу получить возможные коды для проверки в ожидании сбоя в сети?

Я попытался зарегистрировать всю ошибку и ничего не получил, но когда я использую err.message, я получаю «Сетевой запрос не удался»

fetch(url, {
    method: 'GET',
    headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
    }
})
.then((response) => response.json())
.then((responseJson) => {
     this.setState({ procesing: false });
     this.setState({ music: responseJson });

})
.catch(err => {
     console.log(err)
     console.log(err.message)
})

для console.log(err), я ожидал иметь и код ошибки и соответствующее сообщение, но ничего не получил

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Если я правильно понимаю, вы ожидаете ошибки для некоторых целей тестирования.Прежде всего, попробуйте console.log для любой строки, например

console.log('error');

Если ничего не происходит (я уверен, что этого не произойдет), попробуйте выдать ошибку, если ответ не в порядке.

function handleErrors(response) {
    if (!response.ok) {
        throw Error(response.statusText);
    }
    return response;
}

fetch("http://httpstat.us/500")
    .then(handleErrors)
    .then(function(response) {
        console.log("ok");
    }).catch(function(error) {
        console.log(error);
    });

Источник: https://www.tjvantoll.com/2015/09/13/fetch-and-errors/

0 голосов
/ 01 мая 2019

Согласно этому ответу , вы можете использовать функцию для определения ошибки:

var stringifyError = function(err, filter, space) {
  var plainObject = {};
  Object.getOwnPropertyNames(err).forEach(function(key) {
    plainObject[key] = err[key];
  });
  return JSON.stringify(plainObject, filter, space);
};

stringifyError(someError, null, '\t');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...