我有以下代码:

if (isFlyoutAnimationDisabled) {
  flyOut();
} else {
  setTimeout(flyOut, 250);
}


似乎应该有一个比在每个if条件下调用flyOut更好的模式。对我来说似乎很浪费,并且污染了代码。

有没有更好的办法?

最佳答案

超级可读

if (isFlyoutAnimationDisabled) {
  flyOut();
} else {
  setTimeout(flyOut, 250);
}


使用三元运算符?:可读性较差

setTimeout(flyOut, isFlyoutAnimationDisabled ? 0 : 250);


但是使用上述方法,您应该考虑将setTimeout(fn, 0)用作“ nextTick”,从而产生看似意外的结果



fn = () => console.log("A");

setTimeout(fn, 0) // "A"
console.log("B"); // "B"

// See console! 

10-06 07:33