多次调用一个已经运行的函数

时间:2018-08-10 09:06:58

标签: jquery function call

我使用dropzone库上载文件,一旦文件上载,我调用一个函数来检索服务器上的文件列表。 问题是,当我导入小文件时,检索文件的功能“同时”执行,更准确地说是:对此功能的调用已在运行

我想做的是仅在完成时放置一个标志以限制对此功能的访问。

//Listener on add file
dropzone.on("complete", function (file)
    ajaxListFiles();
});

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以仅在函数启动时设置running标志,并在函数结束时取消设置。然后只需在再次执行功能之前检查此标志即可:

let running = false;

dropzone.on("complete", function (file)
    if (!running) {
        ajaxListFiles();
    }
});

function ajaxListFiles() {
    running = true; // at the very beginning of this function

    // ... your code

    running = false; // when it ends, so probably in some callback, not necessary at the end of this function
}