如何遍历响应对象

时间:2018-09-27 20:14:20

标签: javascript error-handling promise es6-promise fetch-api

我正在使用一个小的获取包装程序对API进行fetch调用,如果发生错误,该包装返回一个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实际上是另一个Promise,在这种情况下,我需要做其他事情。或者,Response对象没有OwnProperty对象。无论哪种方式,我都不确定如何获取所需的数据。有什么线索吗?

顺便说一句,我也尝试过Object.keys(error)并且发生了同样的事情

0 个答案:

没有答案