Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理快速连续的函数调用-Javascript/underline.js/node.js_Javascript_Node.js_Underscore.js - Fatal编程技术网

处理快速连续的函数调用-Javascript/underline.js/node.js

处理快速连续的函数调用-Javascript/underline.js/node.js,javascript,node.js,underscore.js,Javascript,Node.js,Underscore.js,我正在寻找一种方法来调用一个不同的函数,如果它被快速连续调用的话。第一个电话需要尽快接通 到目前为止,我已经尝试了来自的.throttle和.debounce来处理这个问题,这几乎就是我想要的,但并不完全是。我可以用这些延迟原始函数调用,但是当同时发生多个调用时,我想调用一个完全不同的函数 这是可能的还是可能的 例如: var _ = require("underscore")._; function foo(){ console.log("foo"); } function bar(

我正在寻找一种方法来调用一个不同的函数,如果它被快速连续调用的话。第一个电话需要尽快接通

到目前为止,我已经尝试了来自的
.throttle
.debounce
来处理这个问题,这几乎就是我想要的,但并不完全是。我可以用这些延迟原始函数调用,但是当同时发生多个调用时,我想调用一个完全不同的函数

这是可能的还是可能的

例如:

var _ = require("underscore")._;

function foo(){
   console.log("foo");
}

function bar(){
   console.log("bar");
}

var delayedFoo = _.throttle(foo, 1000);
相反,我希望在再次调用foo()之前,先调用foo(),然后在指定的持续时间内调用bar():

var delayedFoo = _.route(foo, bar, 1000);
是否有这样一个内置函数的库或框架

是否有这样一个内置函数的库或框架

我不知道,但自己编程应该很简单:

function route(hard, weak, period) {
    var isThrottled = false;
    return function() {
        if (isThrottled) {
            return weak.apply(this, arguments);
        } else {
            isThrottled = true;
            setTimeout(function() {
                isThrottled = false;
            }, period);
            return hard.apply(this, arguments);
        }
    };
}

那么,您是要求每个“周期”总共调用两个函数(然后是
foo
,然后是
bar
,等待1000毫秒,重新开始),还是其他什么?只是想确保我理解:)你想在每次通话或仅第一次通话的周期计数后切换回
foo
吗?@Bergi我想在等待期结束后切换回foo。我正在测试它,它似乎工作正常!谢谢,现在我甚至不必使用下划线.js。你能解释一下你在这里做什么吗?如果任何一个函数都有参数,是否需要它?调用与
route
d函数相同的函数。这真的很有用,其他语言(如Python或Ruby)中是否也存在类似的功能?我自己没有使用过它们,但我希望在任何“强大”语言中都有类似的机制:-)