当前位置: 首页 > 面试题库 >

up:等待N秒,然后继续下一行

慕容嘉荣
2023-03-14
问题内容

puppeteer中, 我想等待定义的时间后再转到下一行代码

我尝试将a 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)
    });
});

但是我想您可以简单地使用前两个示例。



 类似资料:
  • 下面的函数不能像我希望的那样工作;作为一个JS新手,我不明白为什么。 我需要它等待5秒钟,然后检查是否为。 目前,它不等待,只是立即检查。

  • 问题内容: 怎么可能 等到动作完成后再继续循环,我不能得到$ this var,因为它具有最后一个值,对不起我的英语,谢谢!!! 问题答案: 选项1:切换到处理程序中数组中的下一个元素。 选项2:同步发出Ajax请求: 全球: 或直接在请求中: });

  • 问题内容: 我的document.ready()中有一些ajax调用 喜欢 : 我如何强制它等待,直到我们从ajax请求获得所有回叫之前不继续? 问题答案: 我根本不喜欢任何答案,最好的方法(自Jquery 1.5+起)是使用Deferred对象,这些是操纵异步调用的对象,可以解决: 这样,myFunc会在执行2个ajax调用之后执行,如果其中一个出错,则执行myFailure。 您可以在jque

  • 在进行下一步之前,我想从我的on完成函数中得到一个布尔值。 我的问题是,当代码到达布尔值(isLoginSucces)对代码至关重要的部分时,它会得到唯一的假值,因为onComplete函数没有到达更改布尔值的点。 我尝试了异步函数,但它不起作用,也尝试了原子布尔,也不起作用。 在那之后,我把线放平了。睡眠(10000)。在这段时间(10秒)内,它肯定改变了值,但不要工作太多,仍然是错误的,我不明

  • 有什么想法吗?没有JS库。 编辑:我做了几次回拨尝试。老实说,我很难理解他们。下面是我的最后一次尝试:

  • 问题内容: 我是python的n00b用户,并且正在查找执行以下操作的代码段/示例: 显示类似“按任意键进行配置或等待X秒继续”的消息 例如,等待5秒钟,然后继续执行,或者如果按下某个键,则输入configure()子例程。 感谢您的帮助! 伊万·詹森斯(Yvan Janssens) 问题答案: 如果您使用的是Unix / Linux,那么select模块将为您提供帮助。 如果您使用的是Windo