gpt4 book ai didi

javascript - 无限循环 - 如果执行超过一定时间,则抛出超时错误 - 如何返回控制流

转载 作者:行者123 更新时间:2023-12-02 23:03:35 24 4
gpt4 key购买 nike

对于下面的代码,我们的想法是,如果任何循环导致执行时间超过指定的时间,我们就会抛出超时错误。

function test() {

var ___timeout___ = Date.now();

while (true) {
if (Date.now() > ___timeout___ + 1000) {
throw new Error('Timed out');
}
console.log('Infinite Loop?');
}

}

test();
console.log('left loop 1');
test();
console.log('left loop 2');

但是,当我使用函数 test() 和一些 console.log 语句调用无限循环以显示我们已成功调用循环时,退出循环而不会崩溃浏览器调用了另一个循环,最后离开了第二个循环。

为什么我没有得到预期的输出?如果我们无法继续执行我们的程序,那么停止执行到底有什么意义呢?除非我们只是将其构建为每个循环的预防措施

最佳答案

您可以用 try catch 包围它,这样异常就不会中断程序执行。

function test() {

var ___timeout___ = Date.now();

while (true) {
if (Date.now() > ___timeout___ + 1000) {
throw new Error('Timed out');
}
}
}

try {
test();
} catch(e) {
console.log('left loop 1');
}
try {
test();
} catch(e){
console.log('left loop 2');
}

关于javascript - 无限循环 - 如果执行超过一定时间,则抛出超时错误 - 如何返回控制流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57691544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com