百度地图问题:for循环中的异步

wangsir7013 2011-05-23 06:48:56
程序结构大体如下


for(var i=0;i<10;i++){
function yibu(){aaa[i]}

}


其中的yibu()方法是个异步方法,本来想要逐个用aaa[i]的值,结果取了10遍aaa[9]


各位大侠有没有解决办法
...全文
212 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pillar0514 2011-05-25
  • 打赏
  • 举报
回复
程序结构错了吧?
用for循环重新定义 yibu 这个函数10遍有意义吗?
更何况这种写法在多个浏览器下是预编译的方式。
楼主先搞清楚实际结构,更新一下代码吧。
不然你的问题把大家都误导了,没办法帮你解决实际的问题。
更大的可能性是你要使用匿名闭包函数吧:

var arr = [0,1,2,3,4,5,6,7,8,9];
var funcs = [];
for(var i=0;i<10;i++){
(function(index){
funcs.push(function(){
alert(arr[index]);
});
})(i);
}

for(var j=0;j<10;j++){
funcs[j]();
}




touchspirit 2011-05-24
  • 打赏
  • 举报
回复
yibu()方法没有立即调用么;是返回到全局给其他引用?看一些匿名函数的作用链吧。

for(var i=0;i<10;i++){
function(num){
function yibu(){aaa[num];}

}(i);
}
夕甜 2011-05-24
  • 打赏
  • 举报
回复
for(var i=0;i<10;i++){
function yibu(){aaa[i]}

}
你把yibu()得到的值可以返回啊 用一个数组 然后循环数组 用每个数组的值



香椿炒鸡蛋 2011-05-24
  • 打赏
  • 举报
回复
function yibu(){}
里面究竟是何内容? aaa[9]执行10遍应该和里面的内容有关吧。
wangsir7013 2011-05-24
  • 打赏
  • 举报
回复
多谢楼上的哥们。
mengnanleo 2011-05-24
  • 打赏
  • 举报
回复
for(var i=0;i<10;i++){
(function(){
aaa[i];
})();
}
这样写试试~
for(var i=0;i<10;i++){
function yibu(){aaa[i]}
}
这样yibu()并没有执行的
wangsir7013 2011-05-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cp_single 的回复:]
for(var i=0;i<10;i++){
function yibu(){aaa[i]}

}
你把yibu()得到的值可以返回啊 用一个数组 然后循环数组 用每个数组的值
[/Quote]
不靠谱
wangsir7013 2011-05-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 falconshh 的回复:]
function yibu(){}
里面究竟是何内容? aaa[9]执行10遍应该和里面的内容有关吧。
[/Quote]
里面是一个百度地图根据地址找位置的方法,此方法是异步方法。
失去乐山贼 2011-05-23
  • 打赏
  • 举报
回复
帮你顶。

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧