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

时间:2020-02-24 13:55:12

标签: node.js for-loop asynchronous

我基本上有一个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个,请转到链接,然后打开下一个,并转到链接,依此类推... < / p>

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

您没有等待enter呼叫,这就是它没有等待的原因。您需要等待。

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

答案 1 :(得分:0)

您需要将循环包装到异步函数中,并在每个await调用中enter()

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