В настоящее время я проходил курс обучения: Front-End Web Development с React в Coursera, и я застрял в точке, где инструктор показывал, как получать данные с использованием перекрестной выборки. Здесь он показывал
export const fetchDishes = () => (dispatch) => {
return fetch(baseUrl + 'dishes')
.then(
(response) => {
if (response.ok) {
return response;
} else {
var error = new Error(
'Error ' + response.status + ': ' + response.statusText
);
error.response = response;
throw error;
}
},
//manually handle error if the server didn't response
(error) => {
var errmess = new Error(error.message);
throw errmess;
}
)
.then((response) => response.json())
.then((dishes) => dispatch(addDishes(dishes)));
.catch(error => dispatch(dishesFailed(error.message)));
};
Но мой ESLint показывает мне ошибку и предлагает использовать блок try ... catch.
image
Но мне было интересно, почему эта ошибка возникает, даже если инструктор напишет ее, как указано выше, и прекрасно выполнит приложение? Я понятия не имею, как преобразовать этот код в блок try ... catch.
@ erik_m дает решение, но я понял, что точка с запятой означает разрыв цепочки обещаний? И еще одна вещь, из-за которой инструктор не импортировал fetch (например, import fetch from 'cross-fetch'
), как мое приложение использует fetch? Он только что показал, как сделать добавление пряжи cross-fetch@2.1.0 Извлекается ли выборка по умолчанию с приложением реагирования?