JS全局变量不起作用

时间:2018-05-31 02:51:52

标签: javascript jquery

我有这个JS文件......

  var my_data;

  function getData() {
      $.ajax({
          url: 'https://restcountries.eu/rest/v2/name/aruba?fullText=true',
          type: 'GET',
          async: false,
          success: handleData,
          error: showError
      });
  }

  // Process data returned from AJAX call
  function handleData(data) {
      my_data = data;
      console.log('my_data1', my_data);
  } // end function handleData

  console.log('my_data2', my_data);
  getData(); // Call function

当我在控制台中运行此功能时,我得到了

my_data2 :未定义

my_data1 :[{...}](它返回一个数组)

我已经阅读了很多关于将async:false用于修复此问题的内容。但它仍然无法正常工作。为什么 my_data2 没有返回数组?

2 个答案:

答案 0 :(得分:1)

Yo正在使用async:false。但在你的情况下,首先执行语句console.log('my_data2', my_data);,然后执行你的ajax函数,在这种情况下它返回undefined。 你的代码应该是这样的:

  var my_data;

  function getData() {
      $.ajax({
          url: 'https://restcountries.eu/rest/v2/name/aruba?fullText=true',
          type: 'GET',
          async: false,
          success: handleData,
          error: showError
      });
  }

  // Process data returned from AJAX call
  function handleData(data) {
      my_data = data;
      console.log('my_data1', my_data);
  } // end function handleData

  getData(); // Call function
  console.log('my_data2', my_data);

它将返回数组

答案 1 :(得分:0)

交换这些:

dependencies {
    implementation fileTree(dir: 'libs', include: '*.jar')
    // SUB-PROJECT DEPENDENCIES START 
   /* section being overwritten by cordova, referencing project.properties */
...
    // SUB-PROJECT DEPENDENCIES END
}