javascript里for循环里sendrequest,sendrequest返回的是一样的值
for循环里sendrequest,假如循环了1-5,但是sendrequest之后获取到的也是五次,但是都是1-5中的5,也就是最后一个值。为什么呢?
for (var ids=0; ids<6; ids++){
alert(ids);
sendRequest("GET", "/rest/oam/project/"+m+"/status", paramsp, function(response) {。。。。。
。。。。。。
alert(ids);
。。。。。。。
}
}
也就是说alert(ids)出来的东西不一样,虽然都在for循环里,但是sendrequest里的都是alert出来的5
------解决方案--------------------本帖最后由 showbo 于 2013-07-25 09:24:12 编辑
要修改sendRequest的逻辑和参数,做成闭包的形式。。
function sendRequest(method,url,paramsp,callback
,ids){
//....其他处理
//调用回调函数
callback(ajaxResponse
,ids);
}
for (var ids = 0; ids < 6; ids++) {
alert(ids);
sendRequest("GET", "/rest/oam/project/" + m + "/status", paramsp, function (response
, ids) {//。。。。。
//。。。。。。
alert(ids);
//。。。。。。。
}
, ids);
}