使用javascript如何在设定的时间后打破while循环?

时间:2015-12-03 14:54:09

标签: javascript loops timer break imacros

我有一个看起来像这样的while循环:

while(s1 != "#EANF#")
{
iimPlay("CODE:REFRESH");
iimPlay("CODE:TAG POS=1 TYPE=* ATTR=TXT:Contacted:* EXTRACT=TXT")
var s1 = iimGetLastExtract();
}

它将刷新网页,直到找到它想要的内容。然而,有时它变成一个无限循环,我想简单地设置一个计时器,以便它打破while循环并继续。我试着查看settimeout,但无法弄清楚如何做到这一点。我希望这个while循环只是放弃刷新网页如果在3分钟之后找不到它想要的东西。

2 个答案:

答案 0 :(得分:-1)

关于您的问题,您可以定义一个标志变量并在循环中检查它并在计时器中更改其值。

喜欢:

你的while循环:

while(mflag==0){
    //codes
}

您的计时器功能

Function mtimer(){
    mflag=1;
}

在while循环之前的某个地方:

var mflag=0;
var mt= setTimeout(mtimer,3*60*1000);

但我想说的是,我觉得你在一个while循环中刷新网页时有错误的方法。也许你应该使用Ajax或其他东西。如果您提供有关您将要做的所有事情的更多信息,我可能会提供帮助。

答案 1 :(得分:-2)

编辑:这可能不是正确的答案 ...请参阅评论

您可以使用在while循环条件下3分钟后翻转的标志:

var keepGoing = true;
setTimeout(function() {
    // this will be executed in 3 minutes
    // causing the following while loop to exit
    keepGoing = false;
}, 180000); // 3 minutes in milliseconds

while(s1 != "#EANF#" && keepGoing === true)
{
iimPlay("CODE:REFRESH");
iimPlay("CODE:TAG POS=1 TYPE=* ATTR=TXT:Contacted:* EXTRACT=TXT")
var s1 = iimGetLastExtract();
}