Похоже, цикл for for зацикливает последний объект, обрабатываемый во всех полях.Почему мой цикл замерзает?
http://codepen.io/anon/pen/EKxNaN
Это фактический код, я использую, я построил что-то вроде похоже на codepen, так как я не могу запросить JSON от фактического источника на codepen.
var championMasteryPHP = "https://api.myjson.com/bins/xked";
$.getJSON(championMasteryPHP, function (json) {
for (var i = 0; i < json.length; i++) {
var champID = json[i].championId;
var champLevel = json[i].championLevel;
var pointstonextlevel = json[i].championPointsUntilNextLevel;
var championInfo = "http://example.com/champInfo.php?champid=" + champID;
$.getJSON(championInfo, function (json2) {
var champName = json2.name;
var champTitle = json2.title;
$('#champ').append("<li>ID: " + champID + " | Name: " + champName + " | Level: " + champLevel + " | Points to Next Level: " + pointstonextlevel + "</li>");
});
};
});
Короткий рассказ, что я пытаюсь достичь, будет выглядеть следующим образом.
Но по какой-то причине, это то, что я получаю взамен.
Правильные имена, но другие переменные являются самой последней переменной в списке.
Есть ли лучший способ сделать это? Я делаю что-то ужасно неправильно?
Спасибо.
Я уверен, проблема в том, что у вас есть функция async внутри цикла for, и когда вызывается функция async, все ссылаются на одно и то же значение индекса. http://stackoverflow.com/questions/11488014/asynchronous-process-inside-a-javascript-for-loop –
Возможный дубликат htt p: //stackoverflow.com/questions/11488014/asynchronous-process-inside-a-javascript-for-loop – JagsSparrow
Это проблема «непонятного цикла». Позвольте мне опубликовать свой ответ –