我试图通过递归函数获取数据,但当调用递归函数时,我的响应对象未更新。
如果第二个检查条件符合要求,则加载数据,但是在控制台显示响应时,它会显示之前初始化的初始数据。 回调函数中的响应变量没有更新。 但是,如果第一个检查通过,则会更新。
function checkData(id) {
var response = {
new_id: '',
status: false
}
var order = somefunction(id);
var isOriginal = order.isOriginal
var enddate = order.enddate
var new_id = order.originalId
// first check
if (enddate == '' && isOriginal) {
response.new_id = new_id;
response.status = true;
}
//second check
if (!isOriginal) {
if (new_id) {
checkData(new_id); // recursive call
}
}
return response;
}
如果第二个检查条件符合要求,则加载数据,但是在控制台显示响应时,它会显示之前初始化的初始数据。 回调函数中的响应变量没有更新。 但是,如果第一个检查通过,则会更新。
response
会被重新初始化。要么将对象放在更高的范围内,要么将其作为参数传递给函数。 - NullDevisOriginal
为真。 - coagmano