Javascript-在执行一个函数功能后一段时间内禁用所有嵌套函数

时间:2018-08-09 16:32:24

标签: javascript

函数运行后,我想禁用整套功能可以再次执行。我认为最合乎逻辑的方法是将它们全部放到一个总体功能(在本例中为function run)中,并禁用该功能一段时间。

例如,在下面的代码中,当执行功能exampleOne时,我想禁用整个run功能X倍,然后才能再次运行。

function run(){
  function exampleOne(){
    // Code
    sleep(1000);
  }

  function exampleTwo(){
    // Code
    sleep(1000);
  }
}
run();

2 个答案:

答案 0 :(得分:2)

看看underscore.js,尤其是throttledebounce函数。

答案 1 :(得分:1)

您可以将函数定义为变量,然后可以通过为这些变量分配空函数或错误函数来禁用它们。两种功能(例如启用/禁用)可以负责禁用/启用整个功能集。当然,您可以使用setTimeout来管理延迟。

例如:

var exampleOne, exampleTwo;

function enable(){
    exampleOne = function(){       
        // do something

        disable();
        setTimeout(function() { enable(); }, 10000);
    }

    exampleTwo = function(){
        // do something

        disable();
        setTimeout(function() { enable(); }, 10000);
    }     
}

function disable(){
    exampleOne = function(){
        Alert("i'm sleep!")
    }

    exampleTwo = function(){
        // do nothing
    }     
} 

enable();