我想1秒钟返回当前时间戳。 哪里有问题?
定时器返回的是 当前开了多少个定时器。 怎么解决这个问题?
闭关修行中......
function timeValue(time) { console.log(time) } setInterval(function(){ var times=new Date().getTime(); timeValue(times) },1000)
setInterval()不能这样return把,应该直接赋给time
你这里的time是一个函数,假如time所在的对象为a,则a.time()执行后返回的是一个定时器,并不是new Date().getTime()这个时间戳。而定时器的返回值是一个idid从1开始递增,你开了向个定时器,id就会是几。
之前没注意到返回的只是个id,于是我测试了一下:
console.log(setInterval(function(){console.log(1);},2000)); console.log(setInterval(function(){console.log(2);},2000)); console.log(setInterval(function(){console.log(3);},2000)); clearInterval(2);
楼主想一秒返回一个时间戳的话,要把你想实现的代码放到定时器里面去。比如,你可能想每秒修改一下页面中显示的时候,可以这样:
(function(){ var time=setInterval(function(){ document.title=new Date().getTime(); },1000); }())
你的需求是·1秒后返回系统时间·吧?姑且算就是这个意思吧。。。
js的函数都是必须立即返回的,不能实现你说的1秒的将来再返回,(或者你写个死循环,把时间卡住1秒,然后reutrn?那浏览器就假死了。。。)
那怎么实现1秒钟后返回某个值呢?
你去蛋糕店定蛋糕,蛋糕要1个小时才能做好,你又不想傻愣愣地等怎么办?你留个电话给他,做好了call你啊!
同样的,你调用某个函数,这个函数在未来才会通知来拿返回值,那你需要事先给他传递个东西用来call你,这个东西就叫callback函数。这种场景,你需要给对方一个callback函数,而不是企图直接通过对方的return语句来返回你需要的东西。
var WHATEVER = { time: function(callback) { setTimeout(function(){ callback(new Date().getTime()); }, 1000); } }; WHATEVER.time(function(timestamp){ console.log(timestamp); });
setInterval()不能这样return把,应该直接赋给time
你这里的time是一个函数,假如time所在的对象为a,则a.time()执行后返回的是一个定时器,并不是
new Date().getTime()这个时间戳。
而定时器的返回值是一个id
id从1开始递增,你开了向个定时器,id就会是几。
之前没注意到返回的只是个id,于是我测试了一下:
楼主想一秒返回一个时间戳的话,要把你想实现的代码放到定时器里面去。
比如,你可能想每秒修改一下页面中显示的时候,可以这样:
你的需求是·1秒后返回系统时间·吧?姑且算就是这个意思吧。。。
js的函数都是必须立即返回的,不能实现你说的1秒的将来再返回,(或者你写个死循环,把时间卡住1秒,然后reutrn?那浏览器就假死了。。。)
那怎么实现1秒钟后返回某个值呢?
你去蛋糕店定蛋糕,蛋糕要1个小时才能做好,你又不想傻愣愣地等怎么办?你留个电话给他,做好了call你啊!
同样的,你调用某个函数,这个函数在未来才会通知来拿返回值,那你需要事先给他传递个东西用来call你,这个东西就叫callback函数。这种场景,你需要给对方一个callback函数,而不是企图直接通过对方的return语句来返回你需要的东西。