我正在尝试在vue.JS中设置一个简单的超时,但是由于我的parse
函数被立即触发,而不是5秒后才触发,所以似乎等待时间不起作用
props: {
url:String
},
data(){
return{
typingTimer:null,
doneTypingInterval: 5000
}
},
methods: {
parseTimeout(url){
clearTimeout(this.typingTimer);
this.typingTimer = setTimeout(
this.parse(url),
this.doneTypingInterval
);
},
parse(url){
console.log('triggered')
},
},
watch: {
url(){
this.parseTimeout(this.$props.url)
}
}
答案 0 :(得分:3)
您正在呼叫this.parse(url)
但是你需要通过功能
https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout
this.typingTimer = setTimeout(
() => this.parse(url),
this.doneTypingInterval
);