我正在使用vuejs,当用户通过调用checkExistence()函数输入名称时,需要检查数据库中是否存在特定项目。
使用keyup事件,该函数被多次调用,导致数据库请求过多,因此,我尝试使用超时来缓和该函数,以便仅在用户停止键入至少2.5秒时才发送请求,但不会似乎没有用。 clearTimeout似乎不起作用,因为对每个keyup事件都发出了请求。这是代码:
<template>
<v-list-item @keyup="checkExistence()"></v-list-item>
</template>
<script>
let timer = null;
export default {
methods: {
checkExistence() {
clearTimeout(timer);
timer = setTimeout(async () => {
//firebase request
}, 2500);
}
}
}
</script>
最佳答案
clearTimeout()方法清除使用setTimeout()方法设置的计时器。
setTimeout()返回的ID值用作clearTimeout()方法的参数。
关于javascript - clearTimeout不会清除超时变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59794939/