JavaScript. Предусмотреть тот случай, если сервер API не отвечает на запрос
Мне нужно заранее предусмотреть в перехвате ошибок тот случай, если сервер не ответил на запрос. Как это оформить в виде кода?
Допустим, так перехватываются ошибки, если поиск не дал результата. Но я не знаю, как написать код, который перехватывает ошибку в случае, если сервер не ответил на запрос. Хотя бы подскажите учебный материал.
.catch(function() {
alert("Ничего не найдено, попробуйте еще раз!");
});
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Для начала предложу 3 варианта исторически так сложилось. Примеры взяты из developer.mozilla.org
С использованием Callback на базе XMLHttpRequest
oReq.addEventListener("progress", updateProgress, false); oReq.addEventListener("load", transferComplete, false); oReq.addEventListener("error", transferFailed, false); oReq.addEventListener("abort", transferCanceled, false); oReq.open(); // ... // состояние передачи от сервера к клиенту (загрузка) function updateProgress (oEvent) { if (oEvent.lengthComputable) { var percentComplete = oEvent.loaded / oEvent.total; // ... } else { // Невозможно вычислить состояние загрузки, так как размер неизвестен } } function transferComplete(evt) { alert("Загрузка завершена."); } function transferFailed(evt) { alert("При загрузке файла произошла ошибка."); } function transferCanceled(evt) { alert("Пользователь отменил загрузку."); }```C использованием Fetch Api
fetch('http://example.com/movies.json')
.then((response) => {
return response.json();
})
.then((data) => {
console.log(data);
}).catch((err) => {
console.log('Fetch Error :-S', err);
});
- Вариант это через
try catchв паре сawait
try {
const response = await fetch(url, {
method: 'POST', // или 'PUT'
body: JSON.stringify(data), // данные могут быть 'строкой' или {объектом}!
headers: {
'Content-Type': 'application/json'
}
});
const json = await response.json();
console.log('Успех:', JSON.stringify(json));
} catch (error) {
console.error('Ошибка:', error);
}