我正在尝试运行一个函数,在该函数中,我会打开一个新的URL窗口,并在1.5秒后关闭新窗口。我试图循环并执行此3次。但是,该代码会同时打开所有三个新窗口,然后执行超时。我只想在上一个窗口关闭后才打开下一个窗口。
function test(url){
let a = window.open(url);
a.focus();
setTimeout(()=>{
a.close();
}, 1500);
};
const repl = 'mysite.com';
for(let i = 0; i < 3; i++){
test(repl);
}
答案 0 :(得分:1)
如果您要一个在另一个之后运行,请在另一个运行完毕后调用下一个。例如,类似这样的
const reps = 3;
let i = 0;
function test(url){
let a = window.open(url);
a.focus();
setTimeout(()=>{
a.close();
i++;
if (i < 3) {
test(url);
}
}, 1500);
};
const repl = 'mysite.com';
test(repl);
答案 1 :(得分:-1)
您可以使用Asynch库,在其中可以找到很多方法,例如foreach。您可以串行或并行执行任务以同步运行任务,也可以使用限制为1的foreachlimit,其中单个任务将首先完成,然后下一次迭代开始。