为什么我的数组在 AJAX 函数之外表现不同? (填充 jsTree)

Why is my Array behaving differently outside of an AJAX function? (populating jsTree)

长话短说,我正在为 jsTree 创建一个类似于 JSON 的数组。我不明白的是,为什么数组在 AJAX 成功函数内部非常适合我的需求,但在该函数的 外部 却损坏了。查看我的控制台转储中的屏幕截图,您可以看到不同之处。为什么函数内部和函数外部不同?

基本上,除非格式完美,否则我无法做我需要做的事情:(函数内的 myAry)

是什么给了,伙计?

var myAry = [];

$.ajax({
type: "GET",
url: "parents.xml",
dataType: "xml",
success: function(xml) {

    $(xml).find('group').each(function() {

      myAry.push({
        "id": $(this).find('GroupID').text(),
        "parent": "#",
        "text": $(this).find('GroupName').text(),
      });


    }); //end each loop

      //this array is PERFECT
      console.log(myAry);

      } //end success function
  }); //end ajax GET

  //THIS ARRAY IS BORKED
  console.log(myAry);

xml:

 <groups>
    <group>
        <GroupID>1</GroupID>
        <GroupName>Instructional Assistant</GroupName>
    </group>
    <group>
        <GroupID>2</GroupID>
        <GroupName>Technician</GroupName>
    </group>
    <group>
        <GroupID>3</GroupID>
        <GroupName>HR Specialist</GroupName>
    </group>
</groups>

它命中了第一行代码;

//THIS ARRAY IS BORKED console.log(myAry);

异步Javascript 在 Ajax 调用 returns 进程之前