我有以下两个功能:更新呼叫里的数组回到
var abc;
function updateNum() {
abc=0;
g.dbm.transaction("leagues").objectStore("leagues").openCursor(null, "prev").onsuccess = function (event) {
var teams, i;
team.filter({
attrs: ["tid", "abbrev", "region", "name", "cid"],
seasonAttrs: ["winp", "playoffRoundsWon"],
season: g.season
}, function (teams) {
// Sort teams by playoffs and winp, for first round
teams.sort(function (a, b) {
if (a.playoffRoundsWon < b.playoffRoundsWon) {
return -1;
}
if (a.playoffRoundsWon > b.playoffRoundsWon) {
return 1;
}
return a.winp - b.winp;
});
abc+=1;
});
};
}
function getNum() {
return abc;
}
我所要做的是更新的回调函数内的变量ABC,然后返回。我通过首先在另一个文件中调用updateNum()
函数来完成此操作。然后我一个变量分配给的getNum()
值这里是一个示例代码会是什么样子:
myFile.updateNum();
var number = myFile.getNum();
我现在无法返回的num
更新值。 number
保持返回0(默认值)而不是新更新的值(即1)。
我怎样才能让它显示更新的值?如果我需要添加更多信息,请让我知道。
问题,所以我在'updateNum'函数的参数添加'cb'。接下来,我在'abc + = 1'行下面添加了'cb && cb(abc)'。我将'getNum'函数修改为如下:'getBottomTeams(function(abc){return abc;});'现在,当我打开控制台时,我得到'未捕获的ReferenceError:getNum未定义'。我在这里犯了一些明显的错误吗? – DemCodeLines
@TheGuyWhoCouldn'tTalkToTheGirl从你的解释,它似乎很好。也许你可以重新发布你的修改过的代码的相关部分? – plalx
它的工作,因为它应该,所以谢谢你的帮助:) – DemCodeLines