【问题标题】:How can I delay a function with parameter? [duplicate]如何延迟带参数的函数? [复制]
【发布时间】:2016-10-01 13:04:45
【问题描述】:

我正在尝试制作一个游戏,其中机器需要一段时间才能做出响应,因此用户实际上知道机器正在“决定”它的动作。 我需要使用setTimeout() 方法,但我想为我的函数指定一个参数。

例如:setTimeout(myFunction('p'), 1000);。 问题是当我指定参数时,函数运行得很好,但没有延迟。

【问题讨论】:

    标签: javascript delay settimeout


    【解决方案1】:

    当您编写setTimeout(myFunction('p'), 1000); 时,myFunction('p') 被评估,然后setTimeout(returnValueOfMyFunction, 1000) 被评估。

    这段代码会在正确的时间运行匿名函数:

    setTimeout(function (){myFunction('p')}, 1000);
    

    【讨论】:

    • @AndréHelena 如果我的回答对你有帮助,你能接受吗?
    【解决方案2】:

    你可以像这样绑定你的函数,所以时间过后,它会被执行:

    setTimeout(myFunction.bind(this, 'p'), 1000);

    【讨论】:

      【解决方案3】:

      只需将带有参数的函数调用包装在另一个无参数函数定义中。

      例子:

      setTimeout(function() {
          myFunction('p');
      }, 1000);
      

      【讨论】:

        猜你喜欢
        • 2019-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多