Я делаю fetch
вызов API, используя небольшую оболочку выборки, которая возвращает Promise.reject
в случае ошибки.
function fetchErrorHandler(url, options) {
if (options == null) options = {};
if (options.credentials == null) options.credentials = 'same-origin';
return fetch(url, options).then( response => {
if (!response.ok) {
return Promise.reject(response);
}
return response;
})
}
fetch('/cool/api/')
.then(res => res.json())
.then(body => { //...})
.catch(error => {
// Let's do something smart.
});
Что я хотел бы сделать, так это перебратьобъект Response
и сохраните пары ключ: значение.Итак, некоторые внутри этого блока catch:
for (let item in error) {
if (error.hasOwnProperty(item)) {
log(error[item] + ': ' + item);
}
}
... но это не дает результатов.
Есть две возможности, о которых я могу подумать здесь.error
на самом деле является еще одним Обещанием, и в этом случае мне нужно сделать что-то еще.Или объект Response
не имеет OwnProperty
.В любом случае я не уверен, как получить данные, которые я хочу.Есть какие-нибудь подсказки?
Кстати, я тоже попробовал Object.keys(error)
, и то же самое произошло