【问题标题】:Pass reference variable outside the function [duplicate]在函数外部传递引用变量[重复]
【发布时间】:2019-04-04 19:21:37
【问题描述】:

在一个用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();

这里让我感兴趣的是变量 COUNTRY

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

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

【问题讨论】:

  • 为什么不在函数末尾返回该变量?
  • @chevybow 你不能。返回onload是没用的,XMLHttpRequest是异步的
  • 你有什么建议?
  • 将回调传递给cargarPropuestas(),并在调用时使用国家作为参数。 彻底阅读页面顶部的链接

标签: javascript jquery json function variables


【解决方案1】:

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

var country;

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

   peticionLoc.send();
}

【讨论】:

  • 它返回未定义
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 2020-08-21
相关资源
最近更新 更多