Я создаю приложение, которое обменивается данными с локальным сервером через HTTP-запросы, я решил провести «настоящий» тест, и он продолжает выдавать ошибки, но я не могу отследить, откуда возникает ошибка, трассировка стека мне не сообщает откуда это происходит (в моем приложении). Когда я запускаю свое приложение, оно работает в течение 20-30 секунд, ему удается получать / отправлять данные на этот локальный веб-сервер, но через 20-30 секунд я получаю следующую ошибку:
events.js:287
throw er; // Unhandled 'error' event
^
Error: connect ETIMEDOUT 192.168.55.213:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)
Emitted 'error' event on ClientRequest instance at:
at Socket.socketErrorListener (_http_client.js:426:9)
at Socket.emit (events.js:310:20)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: '192.168.55.213',
port: 80
}
Я перепробовал все мои http-запросы в блоке try / catch и регистрировать ошибки, чтобы попытаться определить, откуда они происходят, но ничего, try / catchches не работают, потому что ошибка все еще генерируется, поэтому она не из моих http-запросов, и я не могу понять причину ошибки. Мои запросы выглядят примерно так:
async RequestFunction(requesturl) {
return new Promise((resolve, reject) => {
try {
http.get(requesturl, (resp) => {
let data = "";
resp.on('data', (chunk) => data += chunk)
resolve(data)
});
} catch (error) {
console.log(`${requesturl}+${error.code}`);
}
}
}
Но ловушка никогда не срабатывает. Я предполагаю, что в основном то, о чем я прошу, - это как отследить, откуда возникает ошибка?
Я также пробовал обернуть свою функцию запроса во всех местах, куда я звоню, и жду ее с помощью try / catch блок, тоже самое.