Как перебрать объект ответа - PullRequest
0 голосов
/ 27 сентября 2018

Я делаю 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), и то же самое произошло

...