NodeJS等待for循环中的函数完成后再继续



我基本上有这个for循环,它运行一个函数,打开一个木偶机窗口并转到一个链接,但是,我希望这是按顺序完成的,因为现在所有的木偶机窗口都同时打开。

这是一个循环:

for(var i=0; i < 3; i++){
if (i != 0){
enter();
}
}

这是我的函数输入

async function enter(){
browser = await puppeteer.launch({headless: false});
page = await browser.newPage();
await page.goto(url);
}

现在,如果我要运行代码2木偶机窗口将打开,但我希望1打开,转到链接,然后打开下一个并转到链接,依此类推…

感谢提供的任何帮助

您没有等待enter调用,这就是它没有等待的原因。你需要等待。

for(var i=0; i < 3; i++){
if (i != 0){
await enter();
}
}

您需要将循环包装成异步函数,并在每次调用enter()时使用await

async function openWindows() {
for(var i=0; i < 3; i++){
if (i != 0){
await enter();
}
}
}

最新更新