Вам нужно настроить гонку между завершением вашего запроса и вашим обработчиком ошибки.Если запрос завершается первым, установите флаг, который вы проверяете перед обработкой ошибки:
function call(){
let finished = false;
function callback(){
finished = true
// your callback code goes here
};
ajax.request(..., callback) // make sure this is an async request
function handleTimeout() {
if (finished) return;
// your timeout code goes here
}
setTimeout(handleTimeout, TIMEOUT_IN_MILLISECONDS);
}
в качестве альтернативы установке флага, вы можете отменить тайм-аут .
Обратите внимание, что ваша call
функция ничего не возвращает.Вместо этого вы, по сути, обрабатываете события (либо выполнение запроса, либо и то и другое, либо истечение времени ожидания).