类似这样的
function wait(seconds){ //code }
调用时直接用
... wait(10); ...
来实现等待10秒的功能,而不用调用 settimeout 或 setinterval
这个是要运用回调函数的,你把需要延时处理的代码放到回调里面就可以解决;代码很简单,如下
function wait(callback,seconds){ var timelag=null;//这里应该用if判断一下;可以扩展 timelag=window.setTimeout(callback,seconds); } wait(function(){ alert(1);//这里放入需要等待处理的代码... },2000);
据我所知不能,因为javascript不能阻塞当前线程(除非你用弹出alert或者confirm的形式),只能用settimeout一类的方法去回调。
不是说不能用 settimeout 或 setinterval,我的意思是在 wait方法中对 settimeout 或 setinterval 进行封装,在其他地方调用时直接用 wait就可以了
function pauseJS(timeInMilliS) {
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < timeInMilliS);
}