javascript - Javascript:更新超时而不重新创建它
问题描述
我想知道是否有更好的方法来更新 JS 超时而无需重新创建它。
例如,我有这样的事情:
<input type="text" onchange="doSomething">
在我的脚本中,我正在这样做:
let activeTimeout = null
let doSomething = (event) => {
if( activeTimeout !== null) clearTimeout(activeTimeout)
activeTimeout = setTimeout(() => {
console.log(event.target.value) // → Here i'm doing an XHR request to an API
activeTimeout = null
}, 2000)
}
如您所见,我必须销毁超时并重新创建它。我试图做 aconsole.log(activeTimeout)
但它给了我一个数字,也许是一个 ID,所以我想知道是否没有办法做类似的事情:
let activeTimeout = null
let doSomething = (event) => {
if( activeTimeout !== null) {
window.timeouts[activeTimeout].time = 2000
} else {
activeTimeout = setTimeout(() => {
console.log(event.target.value) // → Here i'm doing an XHR request to an API
activeTimeout = null
}, 2000)
}
}
感谢您的建议。
再见
解决方案
推荐阅读
- python - 如何从 Django 中的其他中间件捕获中间件异常
- javascript - 如何在 react.js 中声明一个 var?
- spring - 当我没有使用该注释或任何与 MVC 相关的依赖项时,Spring 会抱怨 @EnableWebMvc
- javascript - 将变量清除为 this.x = x 时,Typescript 引发错误
- android - Android NonSdkApiUsedViolation
- solr - 使用外部文件构建自动建议
- jestjs - 在玩笑测试中模拟“元素”
- reactjs - 将状态从异步调用传递给 React 中的子类
- vue.js - 加载时未预览的文件
- java - 比较器无法解析为类型,我该怎么办