vueJS,超时不希望计时器

时间:2019-04-20 20:16:10

标签: javascript vue.js

我正在尝试在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)
    }
}

1 个答案:

答案 0 :(得分:3)

您正在呼叫this.parse(url) 但是你需要通过功能  https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout

          this.typingTimer = setTimeout(
           () => this.parse(url),
            this.doneTypingInterval
        );