javascript - 是否有更好的条件 setTimeout 模式?

标签 javascript

我有以下代码:

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

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

有没有更好的办法?

最佳答案

使用 if else

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

使用 Conditional operator ?:

setTimeout(flyOut, isFlyoutAnimationDisabled ? 0 : 250);

通过使用上面的考虑,setTimeout(fn, 0) 将作为 “nextTick” 执行,给出这个看似意想不到的结果

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

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

// Logs:
// >> B
// >> A

关于javascript - 是否有更好的条件 setTimeout 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47336717/

相关文章:

javascript - 用js修改类中的所有元素

javascript - jQuery Selectbox append 选项 OnChange

javascript - 通过CSS在div中组合文本

javascript - AngularJs 无法看到输入的更新值并设置 ng-invalid

javascript - 添加功能无效

javascript - Firefox 扩展中的关闭事件

javascript - 悬停在一个 div 上

javascript - React-Native——如何使用react-navigation传递参数?

javascript - Node JS 如何检查一个对象的所有属性值是否与另一个对象中的相同

javascript - 如何在 Electron 中获取添加的BrowserView的控制台输出?