Vue遇到定时器不能有返回值吗。

我是用vue做倒计时的,加了定时器就不能在页面中显示,可以打印,但是不会更新时间。


    yoytimer:function(){


            for(var i = 0; i < this.shopdata.length; i++){


            if(this.shopdata[i].ytiamer != ''){

                this.shopdata[i].youtit = true;


                var t1 = this.shopdata[i].ytiamer.split("'");//分割出数组

                var t2 = t1[0].split(',');//分割出时间格式

                var t3 = t2[1].split('-');//分割出月份

                var t4;

                if(t3[1] == undefined){

                    t4 =  Number(t3[0]);

                }else{

                    t4 = Number(t3[0] - Number(t3[1]));

                }//计算月份



                var d = new Date(t2[0],t4,t2[2],t2[3],t2[4],t2[5]);

                var d1 = new Date();

                var timer = parseInt((d - d1) / 1000);

                var da = parseInt(timer / 24 / 3600);

                var h = parseInt((timer / 3600) % 24);

                var m = parseInt((timer / 60) % 60);

                var s = parseInt(timer % 60);

                if(h < 10){

                    h = '0'+ h;

                }

                if(da < 10){

                    da = '0' + da;

                }

                if(m < 10){

                    m = '0' + m;

                }

                if(s < 10){

                    s = '0' + s;

                }

                // this.jjk();

            }else{

                this.shopdata[i].youtit = false;

            }

            

        }

        var data = '限时特惠:剩余'+ da + '天' + h + '时' + m + '分' + s +'秒';

        return data;

    },

    jjk:function(dd){

        

        var this1 = this.yoytimer();

        var timer = setInterval(function(){

            return 1;

            console.log(this1);

        },1000);

    }


临摹微笑
浏览 852回答 2
2回答

慕村9548890

需要改写一下,需要在定时器中去执行方法,相当于log去打印一个偏函数,在外面获取的值是固定的,jjk:function(dd){&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; var that = this;&nbsp; &nbsp; &nbsp; &nbsp; var timer = setInterval(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 1;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(that.yoytimer());&nbsp; &nbsp; &nbsp; &nbsp; },1000);&nbsp; &nbsp; }

慕仙森

this1 = this.yoytimer。因为你的值一开始就确定了,不会重新计算
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript