这是我的代码。如何在回调函数中获取for循环的值。我需要在回调中访问gradableGBItems [i] .Title
for(var i=0; i < gradableGBItems.length ; i++)
{
//console.log(gradableGBItems[i].isGradable);
//console.log(gradableGBItems[i].id);
var resultItem='';
Title=gradableGBItems[i].title;
//console.log(Title);
//console.log(gradableGBItems[i].id);
gradeBookbRestService.loadGradeBookItemByItemId(token, gradableGBItems[i].id, function(resultItem) {
//Console.log(); //Need to access value
if(resultItem.grade != null || resultItem.grade != undefined)
{
//console.log(resultItem.points);
jsonObj.push({id:resultItem.grade.id, comments:resultItem.grade.comments, isVisible:resultItem.grade.isVisible, letterGrade:resultItem.grade.letterGrade, points: resultItem.grade.points, title: Title } );
console.log(jsonObj);
}
});
}
答案 0 :(得分:0)
您的对象超出了匿名回调的范围。处理此问题的一种可能方法是创建一个回调函数并将其传递给:
var gradeBookItemCallback = function(gradeableItemTitle, next){
return function(resultItem){
//do something with gradeableItemTitle and/or resultItem.
next(); //call the callback. You could pass whatever you wanted to here as well.
}
});
它会像这样使用:
gradeBookbRestService.loadGradeBookItemByItemId(token, gradableGBItems[i].id, gradeBookItemCallback(Title, callbackFunctionHere));