即使处理了控制台,也会出现错误气泡

时间:2016-12-26 15:16:27

标签: javascript promise ecmascript-6 fetch isomorphic-fetch-api

我正在使用isomorphic-fetch来执行react-redux应用程序的AJAX请求。在我的api中间件中,我有以下函数调用外部资源:

import fetch from 'isomorphic-fetch';

function callApi({ endpoint, method, body, params = {} }) {
    let route = generateRoute(endpoint, params);
    return fetch(route, generateFetchOptions(method, body))
        .then(response =>  {
            if (!response.ok) {
                return Promise.reject(response);
            }

            return response.json();
        });
}

上面的函数由以下代码调用:

return callApi(callAPI).then(
    response => next(actionWith({
        response,
        type: successType,
        statusCode: 200
    })),
    error => error.json().then(errorObject => {
        return next(actionWith({
            type: failureType,
            statusCode: errorObject.statusCode,
            error: errorObject.message || 'Something bad happened'
        }));
    })
);

如果我拒绝Promise.reject(response)错误处理程序正在处理错误,但由于某种原因错误也会冒泡到浏览器控制台(在我的情况下是Chrome)。

以下是控制台的屏幕截图,其中显示了正在发生的事情(api.js:34callApi方法的第二行):

console log

1 个答案:

答案 0 :(得分:2)

这是在HTTP请求期间遇到错误时的常见行为(可能是每个浏览器?)(无论是否找不到链接的图像,或者XHR失败)。无论 if 如何处理这些错误,他们都会始终登录到控制台。没有办法抑制这种行为。

参考文献: