Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在函数外部传递引用变量_Javascript_Jquery_Json_Function_Variables - Fatal编程技术网

Javascript 在函数外部传递引用变量

Javascript 在函数外部传递引用变量,javascript,jquery,json,function,variables,Javascript,Jquery,Json,Function,Variables,在使用json获取特定数据的函数中,我希望在变量中使用此数据,然后在另一个函数中使用它。问题是它对我不起作用 首先,使用json获取数据并在屏幕上就地打印,直到现在,当我将数据保存在变量中时,问题才开始出现 function cargarPropuestas() { var peticionLoc = new XMLHttpRequest(); peticionLoc.open('GET', 'https://api.ipdata.co/es?api-key=b3ae31a7a743860888

在使用json获取特定数据的函数中,我希望在变量中使用此数据,然后在另一个函数中使用它。问题是它对我不起作用

首先,使用json获取数据并在屏幕上就地打印,直到现在,当我将数据保存在变量中时,问题才开始出现

function cargarPropuestas() {
var peticionLoc = new XMLHttpRequest();
peticionLoc.open('GET', 'https://api.ipdata.co/es?api-key=b3ae31a7a74386088875d7d285250b58778e13de985b2f561910b6bd');
peticionLoc.onload = function () {
    var datosLoc = JSON.parse(peticionLoc.responseText);
    var elementoLoc = document.createElement('div');
    elementoLoc.innerHTML += (datosLoc.city + ', ' + datosLoc.country_name);
    loc.appendChild(elementoLoc);
    var country = datosLoc.country_name;
}
peticionLoc.send();
让我感兴趣的是这个多变的国家

这里问题开始了,因为当我“离开”requestLoc.onload=function(){}时,我无法调用变量COUNTRY来在下面使用它


我需要知道如何从函数中获取此变量的信息,以便使用该数据

您可以在两个函数之外声明
国家

var country;

function cargarPropuestas() {
//...
   peticionLoc.onload = function () {
//...
      country = datosLoc.country_name;
   }

   peticionLoc.send();
}

为什么不在函数末尾返回该变量?@chevybow您不能。返回到
onload
是无用的,并且
XMLHttpRequest
是异步的。您的建议是什么?将回调传递到
cargarPropuestas()
中,并在调用它时使用country作为参数。彻底阅读页面顶部的链接,它返回未定义的链接