在 puppeteer中, 我想等待定义的时间后再转到下一行代码。
我尝试将a setTimeout放入评估函数中,但似乎只是被忽略了
setTimeout
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');
如果必须使用操纵符,请使用内置的waitFor函数。
await page.waitFor(4000)
如果仍然要使用page.evaluate,请在4秒钟后解决。您没有解决任何问题。
await page.evaluate(async() => { await new Promise(function(resolve) { setTimeout(resolve, 1000) }); });
但是我想您可以简单地使用前两个示例。