跳到主要内容
CNode

定时器函数中如何使用回调函数

社区
Pperny发布于 12 年前最后回复 12 年前
5106930

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)

L
lb1104#512 年前
引用 lb1104

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

P
perny#412 年前
引用 lb1104

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

L
lb1104#312 年前
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);
}
P
perny#212 年前

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

G
gedy#112 年前

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("结果")';, 就会发现一直在打印“结果”

参与回复

登录后即可参与回复。登录