初学者关于闭包代码,请指教 闭包jsonfunction 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 async:false,//添加async参数设成同步试试 异步返回时你的那个return已经执行完了啊 也就是先执行return那块的 后执行ajax的success var MeteoInfo = function () {var Stations=[]; $.ajax({ type: "POST", url: "/Meteo/GetStation", data: "{ \"name\":\"" + "all" + "\",\"type\": \"" + "max" + "\" }", contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { var joke = []; joke = msg; for(i in joke){ Stations[i] = joke[i]; } //这里这样改一下,应该是可以的。但是在使用最后返回的load方法时,要保证这个ajax已经执行结束了,即,joke已经获取到值了才行。 }, error: function (xhr, msg) { alert(msg); return Stations; } }); return { load: function () { return Stations; }, }} ()当然,1#给的方法,设置成同步调用,也是没有问题的。。我这个方法,你也试试看吧。 success: function (msg) { var joke = []; joke = msg; //这里虽然是返回的json格式,但是这里到底是返回了一个json格式的字符串,需要解析才能成数组,还是说直接返回的数组啊? //如果需要解析的话,你这里可是没有进行解析啊。 //如果本来就是数组,就当我没有说吧,我二了。 for(var i in joke){ //把 i 定义成私有变量吧,以防影响全局变量 Stations[i] = joke[i]; } //这里这样改一下,应该是可以的。但是在使用最后返回的load方法时,要保证这个ajax已经执行结束了,即,joke已经获取到值了才行。 }, 先感谢2009和zyl_lyr1019的热心回答,最后答案确实是异步造成的,设置成同步(async:false,)就没有问题了。 for(i in joke){ Stations[i] = joke[i]; }这段代码也可以不要也可以使用,返回的是数组,这个是没有问题的,再次感谢zyl_lyr1019 关于为DOM元素添加方法的问题。 菜鸟求教javascript与本地ACCESS连接读取问题 如何使用html5标签 javascript实现设置select下拉列表框中选中内容。 全局下定义var i与window.i真的差好多啊 JS对象,动态获取对象属性值 SWFUpload 怎么实现上传文件有进度条 【编程游戏】贺岁放礼花。(第一名奖励10000可用分) 请教高手:保留上次打开页面 js 脚本在win2000 下很好,但在win2003 上会有莫明问题,几台电脑都这样.为啥啊? 关于继承对象的问题! 如何用JS在本地机上生成一个文本文件并将TEXTAREA的内容写入里面,谢谢
var Stations=[];
$.ajax({
type: "POST",
url: "/Meteo/GetStation",
data: "{ \"name\":\"" + "all" + "\",\"type\": \"" + "max" + "\" }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var joke = [];
joke = msg;
for(i in joke){
Stations[i] = joke[i];
}
//这里这样改一下,应该是可以的。但是在使用最后返回的load方法时,要保证这个ajax已经执行结束了,即,joke已经获取到值了才行。
},
error: function (xhr, msg) { alert(msg); return Stations; }
});
return {
load: function () {
return Stations;
},
}
} ()当然,1#给的方法,设置成同步调用,也是没有问题的。。我这个方法,你也试试看吧。
var joke = [];
joke = msg;
//这里虽然是返回的json格式,但是这里到底是返回了一个json格式的字符串,需要解析才能成数组,还是说直接返回的数组啊?
//如果需要解析的话,你这里可是没有进行解析啊。
//如果本来就是数组,就当我没有说吧,我二了。
for(var i in joke){
//把 i 定义成私有变量吧,以防影响全局变量
Stations[i] = joke[i];
}
//这里这样改一下,应该是可以的。但是在使用最后返回的load方法时,要保证这个ajax已经执行结束了,即,joke已经获取到值了才行。
},
for(i in joke){
Stations[i] = joke[i]; }
这段代码也可以不要也可以使用,返回的是数组,这个是没有问题的,再次感谢zyl_lyr1019