Здравствуйте! Я хочу цепочкой промисов обслуживать запрос.
Сначала нужно определить, пришел ли этот запрос на допустимый url, по результатам этой проверки совершать операции (обслуживать/не обслуживать). Эта проверка происходит в первом then (14 строка).
Функция, которая определяет корректность запроса, отрабатывает нормально, в случае ошибки запроса Error можно просмотреть в аргументах второго then (который на 20 строке), но при этом catch, находящийся между ними, ничего не ловит. В чём тут проблема?
//проверка на допустимость гет запроса.
function isValidRequest(requestPath) {
let validReqs = ['/', '/index.html'];
return !!~validReqs.indexOf(requestPath) || new Error('400');
};
function getHandler(req) {
return new Promise((resolve, reject) => {
return resolve(req);
});
};
getHandler(pathname)
.then(()=>{
return isValidRequest(pathname); //отсюда должна вывалиться ошибка при неправильном запросе
})
.catch((e)=> { //не ловит
console.log('error');
})
.then(function() {
console.log(arguments); //из аргументов можно увидеть выпавшую ошибку
return fs.ReadStream(__dirname+'/index.html')
}).then((file) => {
sendFile(file, res);
});