有,在js中用于中断程序继续运行的3种方法: break continue return
break和continue一般用于循环,进行打断
return是返回结果值,如果为了中断程序
一般通过 return false 去中止程序的继续运行
异步执行的函数需要使用回调来获取返回值你那种想等待回调函数执行后再把结果作为返回值的想法是无法实现,并且是极不可取的因为你并不知道需要多久该回调函数才能执行,让主线程阻塞在这儿等待不是一个正确的做法。
正确的做法还是在回调函数中获得值进行处理推荐写法:
var addre ="";var bm = new BMapMap("container");gpsxy = function (xx,yy,i,callback){//添加一个参数作为回调函数,该函数可以获取addre参数
var gpsPoint = new BMapPoint(xx,yy);
bmclearOverlays(); var marker = new BMapMarker(gpsPoint); bmaddOverlay(marker);
bmsetCenter(gpsPoint); var gc = new BMapGeocoder();
gcgetLocation(gpsPoint, function(rs){ var addComp = rsaddressComponents;
addre = addCompprovince + ", " + addCompcity + ", " + addCompdistrict + ", " + addCompstreet + ", " + addCompstreetNumber; check();
if(callback) callback(addre);//把addre传递到回调函数中,这样就可以在函数外部使用返回值了 }); }
调用示范:gpsxy(10,10,1,function(addre){ alert(addre);//这儿就可以使用这个值了 });
return不论后面是否有值,函数都会停止执行并返回结果
而return后面的值就是函数返回的结果
如果return后面没有值,则返回的结果(函数返回值)为undefined
有些函数不需要调用方接收起返回值,所以就不用写返回值,例如函数用于页面d提示信息,调用方不需要知道它调用后有什么结果(因为alert运行结果一定是d出提示框,所以不需要返回值)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)