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

JavaScript038

js中怎么让程序暂停一段时间,第1张

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

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

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.streetNumbercheck()

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

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

1、首先新建一个html文件,命名为test.html。

2、在test.html文件内,使用span标签创建一行文字,用于下面延时设置其颜色。

3、在test.html文件内,给span标签添加一个id属性,用于下面获得它的对象。

4、在js标签内,通过ready()方法,在页面加载成功后,执行function方法。

5、在function方法内,使用setTimeout定时器,在2秒后通过id获得span对象,使用css()方法将其文字颜色设置为红色。

6、最后在浏览器打开test.html文件,查看结果。

加上一句即可:setTimeout( "window.opener=nullwindow.close() ",5000)

<script type="text/javascript">

setTimeout("window.location.reload()",5000)

</script>

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。