Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中每隔5分钟在循环中调用两个交替函数?_Javascript_Loops_Asynchronous_Timeout - Fatal编程技术网

如何在JavaScript中每隔5分钟在循环中调用两个交替函数?

如何在JavaScript中每隔5分钟在循环中调用两个交替函数?,javascript,loops,asynchronous,timeout,Javascript,Loops,Asynchronous,Timeout,确认该方法是可行的,因此从以下内容开始: for (var i = 1; i <= 3; i++) { (function(i) { setTimeout(function() { console.log(i + " second(s) elapsed"); }, i * 1000); })(i); } tldr 也考虑过使用 另见: 您可以有两个函数,它们通过超时互相调用,如下所示。您还可以跟踪计时器,以防在事件发生时或某个持续时间后停止计时

确认该方法是可行的,因此从以下内容开始:

for (var i = 1; i <= 3; i++) {
  (function(i) {
    setTimeout(function() {
      console.log(i + " second(s) elapsed");
    }, i * 1000);
  })(i);
}

tldr

也考虑过使用


另见:


您可以有两个函数,它们通过超时互相调用,如下所示。您还可以跟踪计时器,以防在事件发生时或某个持续时间后停止计时器

函数切换调用(){
var timer={timeout:null};
函数callA(){
console.log(“被调用方”);
timer.timeout=setTimeout(callB,1000);
}
函数callB(){
控制台日志(“B调用”);
timer.timeout=setTimeout(callA,1000);
}
胼胝体();
返回计时器;
}
var timer=toggleCalls();
setTimeout(函数(){
clearTimeout(timer.timeout);
控制台日志(“停止”);

}, 5000);您可以有两个函数,它们通过超时互相调用,如下所示。您还可以跟踪计时器,以防在事件发生时或某个持续时间后停止计时器

函数切换调用(){
var timer={timeout:null};
函数callA(){
console.log(“被调用方”);
timer.timeout=setTimeout(callB,1000);
}
函数callB(){
控制台日志(“B调用”);
timer.timeout=setTimeout(callA,1000);
}
胼胝体();
返回计时器;
}
var timer=toggleCalls();
setTimeout(函数(){
clearTimeout(timer.timeout);
控制台日志(“停止”);

}, 5000);尝试使用间隔函数

  setInterval (()=> {
     // TODO inserte code here
    }, 300*1000);   

尝试使用区间函数

  setInterval (()=> {
     // TODO inserte code here
    }, 300*1000);   

如果要进入循环,可以将URL放入数组中并在其上循环,每次调用下一个URL的
setTimeout()

让URL=[
"https://www.bbc.com",
"https://www.cnn.com",
"https://www.npr.org"
]
函数OpenURL(URL,i=0){
setTimeout(函数(){
log(URL[i])//或您想在此处调用的任何内容
OpenURL(URL,(i+1)%URL.length)
}, 1000)
}

OpenURL(URL)
如果要循环,可以将URL放入数组中并在其上循环,每次调用
setTimeout()

让URL=[
"https://www.bbc.com",
"https://www.cnn.com",
"https://www.npr.org"
]
函数OpenURL(URL,i=0){
setTimeout(函数(){
log(URL[i])//或您想在此处调用的任何内容
OpenURL(URL,(i+1)%URL.length)
}, 1000)
}

OpenURL(URL)
window.open()
需要发生一个用户事件,以防止滥用,并让任何网页大量打开windows@charlietfl你是说,像鼠标点击一样不管怎样:,或者至少看起来是。。。也就是说,我可以通过Firefox的Scratchpad调用它……您可能正在这篇文章中寻找
setInterval()case@CalvinNuneslike.
window.open()
要求发生一个用户事件,以防止滥用,并使任何网页打开很多次windows@charlietfl你是说,像鼠标点击一样不管怎样:,或者至少看起来是。。。也就是说,我可以通过Firefox的Scratchpad调用它……您可能正在这篇文章中寻找
setInterval()case@CalvinNunes就像。我几乎把它作为我发布的另一种方法的替代方法,但你抢先了我一步。这是一个很好的方法。如果需要做的工作不仅仅是打开一个url,还可以使用一系列函数<编码>[openBBC,openCNN,openNPR,…]
并调用那些
URL[(i+1)%URL.length]()
hmm;复制粘贴到Firefox草稿行;肇事逃逸;没有骰子。@nuttyaboutnatty我只是在草稿行中运行,没有问题
console.log()
写入浏览器窗口中的控制台-因此需要在那里进行loo以获得输出。但是你可能会做一些事情,而不仅仅是登录到控制台。谢谢你的回答和运行它:我需要弄清楚为什么它(还)不能在我的系统上工作。还不知道为什么(浏览器控制台会抛出一些错误,但不确定它是否源于运行此脚本或其他打开的网站),但当我这样做时,我会报告:)设法让它在3个FF浏览器中的2个浏览器中运行(仍然不明白为什么它不会在其中1个浏览器中运行)。您能否解释一下如何将
console.log()
替换为
window.open()
和/或
document.getElementById(“mySecondID”)。单击()?非常感谢!我几乎把它作为我发布的另一种方法的替代方法,但你抢先一步。这是一个很好的方法。如果需要做的工作不仅仅是打开一个url,还可以使用一系列函数<编码>[openBBC,openCNN,openNPR,…]
并调用那些
URL[(i+1)%URL.length]()
hmm;复制粘贴到Firefox草稿行;肇事逃逸;没有骰子。@nuttyaboutnatty我只是在草稿行中运行,没有问题
console.log()
写入浏览器窗口中的控制台-因此需要在那里进行loo以获得输出。但是你可能会做一些事情,而不仅仅是登录到控制台。谢谢你的回答和运行它:我需要弄清楚为什么它(还)不能在我的系统上工作。还不知道为什么(浏览器控制台会抛出一些错误,但不确定它是否源于运行此脚本或其他打开的网站),但当我这样做时,我会报告:)设法让它在3个FF浏览器中的2个浏览器中运行(仍然不明白为什么它不会在其中1个浏览器中运行)。您能否解释一下如何将
console.log()
替换为
window.open()
和/或
document.getElementById(“mySecondID”)。单击()?非常感谢!尝试替换
console.log(“被调用的”)带有
窗口。打开(“https://www.twitter.com“,”self“
”等,但只调用站点A(如twitter.com)并停留在那里;站点B从未加载。您的脚本可以使用
window.open()
吗,还是只能使用其他方法
document.getElementById(“myFirstID”)。单击()(我还没试过)?@nuttyaboutnatty As ot