javascript异步回调额外参数与循环异步

1.异步回调函数需要额外参数时必须使用无名函数
data = eval('('+data+')');//as a object 额外参数
//code address and init map
codeAddress(data.centerAdd,function(result){//codeAdress异步方法
var myLatlng = result[0].geometry.location;
initMap(mapDiv_,myLatlng,data);//data为回调函数的额外参数
});
如果这样调用codeAddress(data.centerAdd,successHandler);则successHandler中难以访问额外参数。


2.当循环中需要调用异步函数,常规的调用方式不能实现,下面提供一种方法供参考,实际引用时需要简单修改一下。
var arr = [0,1,2,3,4,5,6,7,8,9];//异步方法中需要的参数

var funcs = [];//存储每个异步方法
//按照参数大小循环将异步方法及其所需参数存储起来
for(var i=0;i<arr.length;i++){
(function(index){//index为循环中传入的参数
funcs.push(function(){
alert(arr[index]);//这里是需要调用方法,可以为异步方法
});
})(i);
}

for(var j=0;j<arr.length;j++){
funcs[j]();//触发每个独立的方法开始执行
}
上面代码原型引自[u]http://topic.csdn.net/u/20110523/18/130c472f-d531-498e-9647-45a4108c2c18.html[/u] 9# 我做了简单修改添加了注释,欢迎提供更多解决循环异步的方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值