鍍金池/ 問答/Linux  HTML/ Vue遇到定時器不能有返回值嗎。

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("'");//分割出數(shù)組
                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);
    }
回答
編輯回答
赱丅呿

this1 = this.yoytimer。因為你的值一開始就確定了,不會重新計算

2018年4月19日 02:53
編輯回答
淡墨

需要改寫一下,需要在定時器中去執(zhí)行方法,相當于log去打印一個偏函數(shù),在外面獲取的值是固定的,

jjk:function(dd){
        
        var that = this;
        var timer = setInterval(function(){
            return 1;
            console.log(that.yoytimer());
        },1000);
    }
2017年7月5日 06:29