84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
我想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语句来返回你需要的东西。