定时器函数中如何使用回调函数
发布于 10 年前 作者 perny 10120 次浏览 最后一次编辑是 8 年前

setInterval( fnTime(function(hour,minute,second){ console.log(hour+":"+minute+":"+second); }), 1000 );

function fnTime(callback){ var date = new Date(); var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); callback(hour,minute,second); }

这样貌似是不行的,小弟初学请大侠们指点,谢谢

5 回复

setInterval( fnTime(function(hour,minute,second){ console.log(hour+":"+minute+":"+second); }), 1000 ); setInterval执行字符串或一个回调函数,这里的fnTime是执行调用,会把fnTime的返回结果放在setInterval当成字符串运行,由于fnTime没有return,所以返回的是undefined 要是在function fnTime(callback){ }最后面加上return ‘console.log(“结果”)’;, 就会发现一直在打印“结果”

回调后还要根据结果,继续操作呢

setInterval(function(){
    fnTime(function(hour,minute,second){
        console.log(hour+":"+minute+":"+second);
    });
},
    1000
);

function fnTime(callback){
    var date = new Date();
    var hour = date.getHours();
    var minute = date.getMinutes();
    var second = date.getSeconds();
    callback&&callback(hour,minute,second);
}

@lb1104 多谢您,能否讲解一下callback&&callback(hour,minute,second);是什么意思?

@perny callback存在时就执行,反之不存在则不执行

回到顶部