У меня есть куча кода.Код имеет асинхронную функцию, то есть обещание.Я жду своего обещания изнутри попробуй ... поймай.Если есть ошибка, я отклоняю ее с реальным обещанием.Смотрите,
runService(options.target, options, socket)
.then(async id => {
if(user) {
.
.
.
})
.catch(error => {
console.log('Here', error);
return socket.emit('error', error);
});
RunService работает следующим образом:
const startService = (target, options, socket) => {
return new Promise(async (resolve, reject) => {
target = typeof(target) == 'string' && target.trim() != '' ? target.trim() : false;
if(target) {
try {
let addresses = await dns.promises.lookup(url.parse(target).hostname, 4);
} catch(exception) {
return reject(exception);
}
const id = await createHash(32);
const targetSlug = url.parse(target).hostname.split('www.').reverse()[0].replace(/[-.]/g, '');
const date = new Date();
socket.emit('log', { stage: 1, message: 'Starting simulation and analysis process' });
const chrome = await launchChrome([
`--window-size=${options.fullscan ? 1920 : options.desktopResolution.width},${options.fullscan ? 1080 : options.desktopResolution.height}`,
'--disable-background-networking',
'--disable-sync',
'--disable-default-apps',
'--no-first-run',
'--enable-automation',
'--disable-translate',
'--disable-extensions',
'--mute-audio',
'--no-sandbox',
headless ? '--headless' : ''
]);
.
.
.
});
};
Я использую функцию try ... catch, и я вызываю функцию, поскольку она в точности выдает исключения в
let addresses = await dns.promises.lookup(url.parse(target).hostname, 4);
Выдает и UnhandledPromiseRejectionWarning
и вывод такой:
Вывод http://prntscr.com/mf60hr
Почему существует UnhandledPromiseRejectionWarning
, а это не 'вызвать socket.emit('error', error)
строку в .catch()
блоке.Почему это?