1
我使用isomorphic-fetch
執行從我react-redux
應用AJAX請求安慰。在我的API中間件,我有以下函數調用外部資源:錯誤泡沫即使被處理
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)
拒絕誤差爲:
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();
});
}
上述功能是通過下面這段代碼中調用由錯誤處理程序處理,但由於某種原因,錯誤也會冒泡到瀏覽器控制檯(在我的情況下爲Chrome)。
下面是從控制檯一個屏幕快照,顯示了所發生的事情(api.js:34
是callApi
方法的第二行):(?大概在每一個瀏覽器)
哪些錯誤。特別是?你拒絕的'響應'甚至不是'錯誤'。 – Bergi
我作爲Promise.reject返回的任何錯誤。我做處理他們,但他們以某種方式設法進入控制檯 –
請發表您的控制檯的屏幕截圖。響應對象不是錯誤,不應該在控制檯上顯示。但是,代碼中還有許多其他事情可能會出錯,並導致出現錯誤。 – Bergi