js中怎么让程序暂停一段时间

 我来答
教育小百科达人
2018-03-31 · TA获得超过156万个赞
知道大有可为答主
回答量:8828
采纳率:99%
帮助的人:465万
展开全部

异步执行的函数需要使用回调来获取返回值你那种想等待回调函数执行后再把结果作为返回值的想法是无法实现,并且是极不可取的因为你并不知道需要多久该回调函数才能执行,让主线程阻塞在这儿等待不是一个正确的做法。

正确的做法还是在回调函数中获得值进行处理推荐写法:

var addre ="";var bm = new BMap.Map("container");gpsxy = function (xx,yy,i,callback){//添加一个参数作为回调函数,该函数可以获取addre参数 

var gpsPoint = new BMap.Point(xx,yy);

bm.clearOverlays(); var marker = new BMap.Marker(gpsPoint); bm.addOverlay(marker); 

bm.setCenter(gpsPoint); var gc = new BMap.Geocoder(); 

gc.getLocation(gpsPoint, function(rs){ var addComp = rs.addressComponents; 

addre = addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber; check(); 

if(callback) callback(addre);//把addre传递到回调函数中,这样就可以在函数外部使用返回值了 }); }

调用示范:gpsxy(10,10,1,function(addre){ alert(addre);//这儿就可以使用这个值了 });

strionws
2016-12-15 · TA获得超过1644个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:373万
展开全部
js不能直接让运行中的js代码停在某一步等待一段时间后继续向后执行。
但可以使用setTimeout或setInterval可以让js在需要的时候启动一个定时器。
需要延迟运行的代码放到setTimeout或setInterval块内即可。
如下代码即实现了类似功能
<script>
alert('现在开始运行程序脚本');
alert('脚本1');
alert('脚本2');
setTimeout(function(){
alert('脚本3');
},10000);
alert('脚本4');
</script>
上面的脚本执行后,浏览器会依次弹出4个对话框,分别显示内容“现在开始运行程序脚本”,“脚本1”,“脚本2”,“脚本4”,当你点掉显示“脚本4”的对话框以后(尽量立即点掉),大约过10秒左右会弹出第五个“脚本3”的对话框。
另外,虽然while、if等以时间为条件的循环,强制执行死循环可以达到阻塞程序代码运行的目的,但会极大的消耗系统资源,一般开发程序是要严格避免这种方式的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
房雁凡s9
2016-09-26 · TA获得超过1360个赞
知道小有建树答主
回答量:504
采纳率:100%
帮助的人:500万
展开全部
var dateStart = new Date(),
     dateEnd;
 //console.log('暂停开始');
 while( ((dateEnd = new Date()) - dateStart) <= 1000){
      //console.log('暂停时间');
 }
 //console.log('暂停结束');

1000 是毫秒的计量, 代表1秒

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
会飞的身体
2016-09-06 · TA获得超过226个赞
知道小有建树答主
回答量:348
采纳率:66%
帮助的人:294万
展开全部
让线程暂停,用sleep()方法,里面放毫秒数,举例来说比如注册之后,过三秒跳到某个界面,就是用这个方法就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a930b2e
2016-10-10 · TA获得超过116个赞
知道小有建树答主
回答量:292
采纳率:86%
帮助的人:75万
展开全部
settimeout

把暂停后需要执行的代码 放到一个函数里 然后用是settimeout 设定多久后执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(13)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式