如果在几分钟内进行了多次调用,如何使我的函数不重复多次调用?
var s = 1;
function foo(x) {
if (s === 1) {
console.log('done');
setTimeout(function(){
s =1;
}, 10000);
} else {
s = 2;
console.log('no more repeat calling');
}
}
foo(1);
foo(2);
我期待结果 -
done
no more repeat calling
最佳答案
因为 s
永远不会被设置为 2
。看来您打算在 if block 中执行此操作,而不是在 else block 中:
if (s === 1) {
console.log('done');
s = 2; // <--- here
setTimeout(function(){
s = 1;
}, 10000);
} else {
console.log('no more repeat calling');
}
这样,第一次调用将更新 s
标志,因此后续调用将转到 else
block 。
关于javascript - 不重复调用Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46934418/