gpt4 book ai didi

Javascript 调用一个函数,并且在它返回之前不会再次调用它

转载 作者:行者123 更新时间:2023-11-28 21:15:46 25 4
gpt4 key购买 nike

我有一个按钮,单击该按钮会调用一个函数 - 该函数执行一些异步 Ajax,并在 Ajax 返回时提醒消息框。我不希望用户多次单击该按钮 - 如果他在 Ajax 未返回时单击该按钮,则应发出错误消息警报。

我知道这可以使用全局 bool 变量轻松完成(将其初始设置为 true,进行 ajax 调用并将其设置为 false - 当 ajax 返回时再次将其设置为 true - 检查全局是否为 false用户单击按钮)。如果我使用另一个包含函数和 bool 值的全局对象而不是窗口/全局对象,也可以类似地完成

但是,我不太喜欢上述方法 - 我认为它们有点老式的 Javascript。我想知道是否有更优雅的方法来做到这一点,例如使用 JS 闭包!

最佳答案

使用此方法,您的变量不会泄漏到全局范围。无法从函数外部操作此变量:

var foo = (function(){
var pending = false;
return function foo(){
if(pending) return;
pending = true;

//...Code

//When finished:
pending = false;
}
})()

其他人可能会建议设置函数的一个属性,但这个属性很容易从外部调整,这是不可取的。

关于Javascript 调用一个函数,并且在它返回之前不会再次调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7645724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com