从函数中检索变量
Retrieving a variable from within a function
我正在尝试从英雄联盟API中提取信息。
为了简化我正在做的事情,我正在尝试提取有关用户及其先前匹配的信息。我遇到的问题是,当我解析 JSON 请求时,它会返回冠军 ID 而不是它们的名称(例如:412 而不是"Thresh")。
我能看到的唯一解决方案是发出另一个 JSON 请求并解析冠军名称的数据。目前我所拥有的看起来像这样。
$.getJSON(championMasteryPHP, function (json) {
for (var i = 0; i < 20; i++) {
var champID = json[i].championId;
var championInfo = "http://example.com/champInfo.php?summonerid=" + champID;
$.getJSON(championInfo, function (json2) {
var champName = json2.name;
});
$('#champ').append("<li>"+champID+" - "+champName+"</li>")
}
});
我无法访问champName
变量,因为它嵌套在第二个 JSON 函数中。
有没有更好的方法可以做到这一点?
$.getJSON(championMasteryPHP, function (json) {
for (var i = 0; i < 20; i++) {
var champID = json[i].championId;
var championInfo = "http://example.com/champInfo.php?summonerid=" + champID;
$.getJSON(championInfo, function (json2) {
var champName = json2.name;
$('#champ').append("<li>"+champID+" - "+champName+"</li>")
});
}
});
只需将其放在第二个 json 请求中,因为无论如何您都需要等到该请求完成。
你应该把 append 语句放在回调中,因为 getJSON 是一个异步方法(确实意味着请求在后台运行,并在收到响应时回调你的函数),所以你应该先等待响应,然后你可以把它附加到#champ
:
$.getJSON(championMasteryPHP, function (json) {
for (var i = 0; i < 20; i++) {
var champID = json[i].championId;
var championInfo = "http://example.com/champInfo.php?summonerid=" + champID;
$.getJSON(championInfo, function (json2) {
var champName = json.name;
$('#champ').append("<li>"+champID+" - "+champName+"</li>")
});
}
});
希望这有帮助。
相关文章:
- 为什么可以't我将检索到的文档分配给控制台中的变量
- Chrome扩展:Can't从chrome.local变量中检索值
- 无法在函数中检索全局变量的值
- 检索本身包含变量的 Jquery 变量名的值
- 使用 Javascript 或 jQuery 检索会话变量的简单快捷的方法
- 调用c#函数从传递javascript变量的javascript中检索数据
- 如何检索jquery ajax对php变量的响应
- 如何在JavaScript中检索变量的名称
- 如何从Mysql检索变量并在JS中的函数中使用它
- 检索在onchange javascript事件中创建的javascript变量
- jQuery,用于检索数据的变量
- AJAX来检索对象并将其存储在变量中
- 在 Success 函数中检索多个值并将它们存储到 javascript 变量中
- 尝试检索变量以检查表单是否有效
- Javascript 正则表达式从句子中检索变量
- 如何将使用 getter 检索到的 Ember 数据放入临时变量中进行处理
- 在 Express 中检索多个变量
- 从 JavaScript 传递后无法检索变量
- 在angular中,我如何将输入变量检索到javascript控制器上?
- 变量检索JSON