vue watch监听验证码时,axios延迟发送post请求…

2019-03-10 11:50:52来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

标题写的全面一些,方便其他人检索,我就是找了半天找不到资料,最后自己搞定了。

原理:

每次监听到输入值变化,就打一个时间戳,然后暂停2秒再去提交post验证。

但是每次提交前,判断一下之前打的时间戳和现在时间是否大于2秒,如果大于,则真去提交post,否则return掉不执行。

以下是代码片段:

 

data () {
     return {
        captchaInputLastTime:null,
    }

watch: {
// 监听验证码变化
'formData.captcha': async function(newVal){

                var delay = 2000;//延迟2000 毫秒执行
                this.captchaInputLastTime = (new Date()).valueOf();
                await this.$root.sleep(delay);
                var nowTime = (new Date()).valueOf();
                var gap = nowTime - this.captchaInputLastTime;
                if( gap  < delay){
                    return
                }

                axios.post。。。。。执行验证逻辑。
}

methods: {
        sleep (ms = 1000) {
                return new Promise((resolve)=>setTimeout(resolve,ms));
        },
}

  


原文链接:https://www.cnblogs.com/alpiny/p/10492230.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:javascript数组去重方法总结

下一篇:Node.js+Protractor+vscode搭建测试环境(1)