2016-12-26 12 views
1

Я использую isomorphic-fetch для выполнения запросов AJAX от моего приложения react-redux. В моем апи промежуточного слоя у меня есть следующая функция, которая вызывает внешний ресурс:Ошибка пузырьков в консоли, хотя она обрабатывается

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:34 вторая строка метода callApi): (? В, наверное, в любом браузере)

console log

+0

Какая ошибка конкретно? «Ответ», с которым вы отклоняетесь, даже не является «ошибкой». – Bergi

+0

Любая ошибка, которую я возвращаю как Promise.reject. Я обрабатываю их, но им как-то удается попасть на консоль. –

+2

. Отправьте снимок экрана своей консоли. Объект ответа не является ошибкой и не должен отображаться как таковой на консоли. Однако в коде есть много других вещей, которые могут пойти не так и вызвать ошибку, которая будет показана там. – Bergi

ответ

2

Это обычное поведение при попадание ошибки во время HTTP-запроса (независимо от того, невозможно ли найти связанное изображение или сбой XHR). Независимо от того, , если и , как вы обрабатываете эти ошибки, они будут всегда быть зарегистрированным на консоль. Невозможно подавить это поведение.

Ссылки: