Я пытаюсь создать функцию тайм-аута, которая выдает ошибку в случае слишком долгого зависания функции.
У меня есть следующий код:
function go() {
try{
console.log('started, timeout in 2 seconds...');
setTimeout(()=>{
throw new Error('Timed Out!');
}, 2000);
while(true){
//will run forever
}
}catch (e) {
console.log('timeout function worked!');
}
}
go();
Однако ошибка не выдается.Я думаю, это из-за того, как работает цикл обработки событий в JS, но я бы хотел, чтобы моя функция тайм-аута выполнялась через 2 секунды независимо от того, что еще происходит.Как мне этого добиться?