Javascript-如果满足条件,则在特定时间内返回True,然后返回false

时间:2020-09-30 04:44:13

标签: javascript function if-statement timer

我正在尝试编写一个函数,该函数如果满足某些条件,则会在一段时间内返回“ true”,然后再次返回false,即使条件仍然为true。

代码的想法是这样的:

if(condition is met)
    {return 'True' for 3000ms then 'false'} //even if the condition it's still 'true'
        else {False}

我可以轻松地对条件的结果进行编程(如果满足则返回true或false),但是尝试(如果为true)将其返回特定时间段会遇到很多麻烦。

注意:在这种情况下,带有setTimeout()的函数不是选项。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在这种情况下使用闭包

function falseReturnAfter(time) {
    let val = true;
    setTimeout(() => {
        val = false;
    }, time);
    return function(con) {
        if(con && val) {
            return true;
        }
        return false;
    }
}
let f = falseReturnAfter(10000) // return false after 10 sec.
f(true) // true
f(false) // false
// after 10 sec
f(true) // false
f(false) // false

也许这会对您有所帮助。