【问题标题】:javascript timeout/sleep using setTimeout()javascript 超时/睡眠使用 setTimeout()
【发布时间】:2013-08-17 17:31:05
【问题描述】:

如何设置 2 秒超时以等待填充页面控件?我想使用 javascript 我尝试了以下但无济于事:

setTimeout(function(){},2000);

setTimeout(2000);

谁能提供一个指针?

【问题讨论】:

  • 超时后你想做的任何事情都必须在传递给setTimeout()的回调函数中,就像你给出的第一个例子一样

标签: javascript jquery timeout sleep timing


【解决方案1】:
setTimeout(function(){
  //put your code in here to be delayed by 2 seconds
},2000);

您要延迟的代码需要放在 setTimeout 函数中。

【讨论】:

    【解决方案2】:

    这样试试

    $('input').click(function () {
        var that = $(this);
        setTimeout(function() { alertMsg(that); },2000);
    });
    

    DEMO

    【讨论】:

      【解决方案3】:

      注意:此答案的一部分与another more popular answer 相同,但此答案还包括输出以明确构造的sleep() 允许同一线程中的独立循环交错运行。

      ECMAScript 最新草案 (ECMA-262)。截至 2019 年,大多数浏览器都支持,但 IE 不支持。

      function sleep(n) { return new Promise(resolve=>setTimeout(resolve,n)); }
      
      async function LoopA() {
          for (let i=0;i<10;i++) {
              console.log("LoopA i=",i,
                          ",sec=",performance.now().toFixed(0)/1000);
              await sleep(1000);
          }
      }
      async function LoopB() {
          for (let i=0;i<10;i++) {
              console.log("LoopB i=",i,
                          ",sec=",performance.now().toFixed(0)/1000);
              await sleep(1000);
          }
      }
      LoopA();
      LoopB();
      

      有样本输出:

      LoopA i= 0 ,sec= 1648.665 
      LoopB i= 0 ,sec= 1648.665 
      LoopA i= 1 ,sec= 1649.666
      LoopB i= 1 ,sec= 1649.667
      LoopA i= 2 ,sec= 1650.667
      LoopB i= 2 ,sec= 1650.669
      LoopA i= 3 ,sec= 1651.669
      LoopB i= 3 ,sec= 1651.67
      LoopA i= 4 ,sec= 1652.67
      LoopB i= 4 ,sec= 1652.671
      LoopA i= 5 ,sec= 1653.671 
      LoopB i= 5 ,sec= 1653.672 
      LoopA i= 6 ,sec= 1654.672 
      LoopB i= 6 ,sec= 1654.674 
      LoopA i= 7 ,sec= 1655.674 
      LoopB i= 7 ,sec= 1655.675 
      LoopA i= 8 ,sec= 1656.675 
      LoopB i= 8 ,sec= 1656.676 
      LoopA i= 9 ,sec= 1657.677 
      LoopB i= 9 ,sec= 1657.678
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-15
        • 1970-01-01
        • 2011-08-15
        • 2021-03-07
        • 2011-11-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多