我正在学习异步javascript,直到现在我只看到Ajax和XMLHttpRequest对象,但遇到了一个问题,这与变量范围有关:
let currencies; //global variables
let keys;
xhr = new XMLHttpRequest();
xhr.open('GET', 'http://apilayer.net/api/list?access_key=myaccesskey', true);
xhr.onload = function(){
if(this.status === 200){
const response = JSON.parse(xhr.responseText);
currencies = response.currencies; //local variable
console.log(currencies); //returns the "currencies "object in the response
}
}
xhr.send();
console.log(currencies); // returns undefined
正如您所看到的那样,问题是这两个称为货币的变量是不同的变量,但是由于我必须在分配给xhr.onload的函数内部分配值,所以我不知道如何全局获取该值