Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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 jQuery.always()函数中的setTimeout多次激发_Javascript_Jquery - Fatal编程技术网

Javascript jQuery.always()函数中的setTimeout多次激发

Javascript jQuery.always()函数中的setTimeout多次激发,javascript,jquery,Javascript,Jquery,我已经在firefox中测试了这个问题。我有以下jquery代码: function getSomething() { $.post(someUrl, { data: 'something' }, function (data) { // results in some data }, "json").always(function() { var timeR = 10 * 1000; // 10 seconds

我已经在firefox中测试了这个问题。我有以下jquery代码:

function getSomething() {
    $.post(someUrl, {
        data: 'something'
    }, function (data) {
        // results in some data
    }, "json").always(function() {
        var timeR = 10 * 1000; // 10 seconds
        var pingForSomething = setTimeout(function() {
            getSomething();
        }, timeR);
    });
}

这个很好用。它发布到url。无论post是否成功,通过
.always()
,它都会在10秒后再次运行该功能。但是,我观察到,在长期运行(几分钟)中,此函数被多次激发(多次激发,就像在10秒内函数多次运行一样,函数的多个实例同时开始运行,导致不希望的频繁发布)。知道为什么吗?

因为它总是安排设置计时器,而且因为计时器功能总是重新启动进程,所以它一直在运行。我不明白这有什么让人困惑。因为它递归地做着同样的事情:在自身上添加一个计时器事件…@Pointy多次,就像在10秒之前多次…@AxelAmthor。函数的多个实例同时开始运行,导致非常频繁的帖子。