一段时间后调用函数,但只调用一次

call function after some time but only one time

本文关键字:调用 一次 函数 一段时间      更新时间:2023-09-26

我只想用javascript调用函数一次,但需要一段时间。

setTimeout(function(){ $('.alert').fadeOut(2000) }, 5000);

现在我正在使用这个,但是这个函数调用了多次。一段时间后我只需要调用一次

例如,如果您有这样的函数:

function a () {
    // do stuff
    setTimeout(function() {
        // the timeout function
    }, 5000);
}

当多次调用此函数a()时。超时功能也会出现多次。

为了防止这种情况发生,您可以在其他地方设置超时功能。但您也可以使用锁定机制。

var lock = false;
function a () {
    // do stuff
    if (!lock) {
        lock = true;
        setTimeout(function() {
            // the timeout function
        }, 5000);
    }
}
a(); // first call
a(); // second call
lock = false;
a(); // third call

现在,当您第一次调用函数a时,它会执行timeout函数。第二次没有。为了证明你可以控制锁,你会看到第三个锁确实执行了超时功能。