【问题标题】:JS: function waiting by calling itself with settimout - how to handle parmeters? [duplicate]JS:通过 settimeout 调用自身来等待函数 - 如何处理参数? [复制]
【发布时间】:2019-05-10 11:35:21
【问题描述】:

我希望纯 JS 中的函数仅在特定条件发生时等待并执行。

function wait_then_go  (a,b,c) {

if (!go) window.setTimeout (wait_then_go (a,b,c), 500);

// go here 

}

是否有一种通用的方法可以在超时时传递参数而不是指定 a,b,c ? 如果我更改函数定义中的参数,我不希望代码中断。

【问题讨论】:

    标签: javascript function methods


    【解决方案1】:

    如果您不想指定a,b,c,可以使用arguments。并且还使用包装函数并在其中调用参数。

    function wait_then_go  (a,b,c) {
        const arg = [...arguments];
        if (!go) window.setTimeout (() => wait_then_go (...args), 500);
    }
    

    【讨论】:

      【解决方案2】:

      将函数wait_then_go传递给setTimeout回调函数,并将...arguments作为参数传递。

      function wait_then_go  (a,b,c) {
        if (!go) window.setTimeout (function() {
          wait_then_go (...arguments)
        }, 500);
        // go here 
      }
      

      【讨论】:

      • 看来您在通话中重复了 a、b、c,因此无法回答我的问题。
      猜你喜欢
      • 2021-03-21
      • 2015-04-09
      • 1970-01-01
      • 2020-05-01
      • 2018-05-28
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      相关资源
      最近更新 更多