2017-06-29 14 views
1

私はいくつかのajax呼び出しを作成しています。最終的に必要な関連値を含むオブジェクトの配列を作成したいと考えています。 Unfortunatley私は奇妙な何かにぶつかった。私の最初のajax呼び出しは、私が探しているオブジェクトの配列を返しますが、配列の長さを呼び出すと0になります。オブジェクトがいっぱいの配列には、長さがありません。

function followingsJSON(followings) { 
    var followingObject = []; 

    for (var i in followings) { 
    var query = "https://wind-bow.glitch.me/twitch-api/users/" + 
followings[i]; 

    $.ajax({ 

     url: query, 
     type: "GET", 
     datatype: "json" 

    }) .done(function(json){ 
     if (json.display_name) { 
     followingObject.push({ 
      'display_name' : json.display_name, 
      'logo' : json.logo, 
      '_id' : json._id 
     }); 
     } else { 
     followingObject.push({ 
      'display_name' : null 
     }); 
     } 
    }) 
    }; 
    console.log(followingObject); 
    console.log(followingObject.length); 
    } 

使用CHROM devのツール私はfollowingObjectがあるコンソールログから見ることができます:

[] 
0: Object 
1: Object 
2: Object 
3: Object 
4: Object 
5: Object 
6: Object 
7: Object 
8: Object 
length: 9 
__proto__: Array(0) 

ここでは、関連するコード(コード「以下」で、ユーザーが持っている以下の配列です)のですだから配列は私が望むオブジェクトを持っていて、配列はArrayからそのプロトタイプメソッドを派生します。しかし、console.log(followObject)は私に0を与えます。

なぜか分かりますか?

+0

@ Jonasw-nothing、now。 ;-) – RobG

答えて

1

私はAJAX呼び出しがAJAX呼び出しが完了する前に、AJAX呼び出しが実行されます後のコマンドを意味し、asynchronusを実行されますながらにconsole.logはsynchronusで行わ機能

function followingsJSON(followings) { 
    var followingObject = []; 

    for (var i in followings) { 
     var query = "https://wind-bow.glitch.me/twitch-api/users/" + 
      followings[i]; 

     $.ajax({ 

      url: query, 
      type: "GET", 
      datatype: "json" 

     }) .done(function(json){ 
      if (json.display_name) { 
       followingObject.push({ 
        'display_name' : json.display_name, 
        'logo' : json.logo, 
        '_id' : json._id 
       }); 
      } else { 
       followingObject.push({ 
        'display_name' : null 
       }); 
      } 
      console.log(followingObject); 
      console.log(followingObject.length); 
     }) 
    }; 
} 

にはconsole.logを移動します - > console.logの結果はまだありません

関連する問題