javascript – puppeteer:在继续下一行之前等待N秒

前端之家收集整理的这篇文章主要介绍了javascript – puppeteer:在继续下一行之前等待N秒前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在puppeteer中我想在进入下一行代码之前等待一段确定的时间.

我试图将一个setTimeout放在一个evaluate函数中,但似乎只是被忽略了

console.log('before waiting');
await page.evaluate(async() => {
  setTimeout(function(){
      console.log('waiting');
  },4000)
});
console.log('after waiting');

代码不等待,只是在等待之前和等待之后写入

你知道怎么做吗?

解决方法

你可以使用一点承诺功能,
function delay(time) {
   return new Promise(function(resolve) { 
       setTimeout(resolve,time)
   });
}

然后,只要你想要延迟,就打电话给它.

console.log('before waiting');
await delay(4000);
console.log('after waiting');

如果你必须使用puppeteer使用内置的waitFor函数.

await page.waitFor(4000)

如果您仍想使用page.evaluate,请在4​​秒后解决.你没有解决任何问题.

await page.evaluate(async() => {
    await new Promise(function(resolve) { 
           setTimeout(resolve,1000)
    });
});

但我想你可以简单地使用前两个例子.

猜你在找的JavaScript相关文章