У меня есть сценарий, когда я возвращаю обещание. Обещание в основном дает ответ на запрос ajax.
При отказе от обещания отображается диалоговое окно с сообщением об ошибке сервера.
То, что я хочу сделать, - это когда код ответа 401, я не хочу разрешать обещание и не отклонять его (потому что он показывает диалоговое окно с ошибкой). Я хочу просто перенаправить на страницу входа.
Мой код выглядит примерно так:
function makeRequest(ur,params) {
return new Promise(function(resolve,reject) {
fetch(url,params)
.then((response) => {
let status = response.status;
if (status >= 200 && status < 300) {
response.json().then((data) => {
resolve(data);
})
}
else {
if(status === 401) {
redirectToLoginPage();
}
else {
response.json().then((error) => {
if (!error.message) {
error.message = constants.SERVER_ERROR;
}
reject({status,error});
})
}
}
})
});
}
Как вы можете видеть, является ли статус 401, я перенаправляюсь на страницу входа. Обещание не разрешено и не отклонено.
Этот код в порядке? Или есть лучший способ сделать это.
Спасибо.