我需要发送三个get / post请求。从第一个的响应中,我填充了这样的对象数组。
mylist=[];
$.post(url,{param1:p1},function(data){
for (i=1; i<=data.length; i++){
mylist.push({
v1:val1,
v2:val2
});
}
});
现在,我需要发送另一个请求,并且从响应中,我需要更新对象数组的成员。
所以,我将代码更新为
mylist = [];
$.post(url, {
param1: p1
}, function(data) {
for (i = 1; i <= data.length; i++) {
mylist.push({
v1: data[i].val1,
v2: data[i].val2
});
// next request
$.get(url, {
param1: p2
}, function(data2) {
for (i = 1; i <= data2.length; i++) { //compare and replace
new_attr = data2[i].newval1;
for (j = 1; j <= mylist.length; j++) {
if (mylist[j].v1 == new_attr) { //error line
mylist[j].val2 = data2[i].newval2;
}
}
}
});
displayData(myList);
}
});
但是当我这样做时,我在代码中的错误行注释指示的行上得到此错误。
无法获得财产&#39; v1&#39;未定义或空引用。
我做错了什么?我还尝试在get / post之前使用$ .when()并在.done()中调用display函数,但仍然是同样的错误。