我有几行代码,我想根据标志在超时中包装。这样做的简单方法是:
var myCondition = // true or false
if(myCondition){
setTimeout(function(){
myVar++;
myFunction();
something = somethingElse;
}, 1000 );
} else {
myVar++;
myFunction();
something = somethingElse;
}
有没有更短的方法来实现这一目标?比如以某种方式使用.call?
正如评论中所指出的,我知道我可以将代码包装在一个函数中:
var myWrapperFunction = function(){
myVar++;
myFunction();
something = somethingElse;
}
但我正在寻找的是以短于上述方式应用超时的条件方式。
答案 0 :(得分:1)
不确定为什么更短让它变得更好或更容易理解。最简单的方法是缩短它,将公共代码放入函数并根据条件分配或调用它。
var fnc = function () { /* common code */};
if (x) {
setTimeout(fnc, 1000);
} else {
fnc();
}
或将超时设置为零
var time = x ? 1000 : 0;
setTimeout(fnc, time);