我正在尝试使用debounce
函数捕获用户开始输入和停止输入的事件。我尝试了Lodash和Underscore.js。
On my textArea
v-on:keyup="handler($event)"
handler: function(e) {
this.e = e
if(this.canPublish) {
this.setCanNotPublish()
this.doStuff()
}
var debounceFunction = _.debounce(this.doneTyping(), 5000)
debounceFunction(e)
},
我对此感到非常沮丧。在纯JavaScript中,我使测试工作了。但是在使用v-on事件、数据、方法等的Vue.js中,我无法使其工作。
方法doneTyping
doneTyping: function () {
console.log('done typing....')
}
}
Method doStuff
doStuff: function () {
console.log('started typing....')
}
预期的行为是:用户首先在文本区域中开始输入,然后启动doStuff。如果用户继续输入时间小于5秒的句号,则不会再次触发doStuff,因为canPublish是一个布尔值。接下来,用户停止输入,然后防抖函数完成,doneTyping被触发。
this.doneTyping
代码吗?this.doneTyping
应该返回一个函数,因为在_.debounce
中的第一个参数是函数。 - undefined