变量时,它们不会更新。
我已经阅读了数小时的有关回调,作用域和闭包以及许多其他内容的信息,但我无法列出为解决该问题而试图解决的问题
function getData(url, cb) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
cb(JSON.parse(this.responseText));
}
};
xhr.open("GET", url);
xhr.send();
}
function searchMonsterData(url) {
var searchTerm = document.getElementById("monsterName").value;
var monsterData;
var result;
var monsterURL;
getData(url, function(data) {
monsterData = data.results;
for (i in monsterData) {
if(monsterData[i].name == searchTerm) {
result = monsterData[i];
monsterURL = result.url;
console.log(monsterURL);
}
}
})
}
代码运行时,应将monsterURL登录到控制台并更新searchMonsterData()中的变量,以便我可以在getData之外使用它们。
当代码运行searchMonsterData()中的变量时,不会更新。