1、跳出循环用break语句就可以实现。打开hbuilder软件,创建一个点击按钮标签和用于显示循环内容的div标签:
2、在scrip标签里,创建点击触发循环的方法,循环里当循环到3的时候,用break语句跳出循环体,在button标签上添加点击myFunction()函数:
3、按下crtl+s保存后,使用浏览器打开,点击按钮可以发现按钮下方只打印出从0-2的内容,这就表示成功使用break跳出循环体了:
异步执行的函数需要使用回调来获取返回值你那种想等待回调函数执行后再把结果作为返回值的想法是无法实现,并且是极不可取的因为你并不知道需要多久该回调函数才能执行,让主线程阻塞在这儿等待不是一个正确的做法。
正确的做法还是在回调函数中获得值进行处理推荐写法:
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)//这儿就可以使用这个值了 })