2016-11-30 13 views
0

私はjquery get関数を使ってサーバ(Laravelアプリケーション)からデータを取得しています。データは、bysicallyオブジェクトの配列です。簡略化した.jsコードは次のようになります。insertオブジェクトの配列にレスポンスを取得

$(function(){ 
    var results = []; 
    var getIt = function(){ 
     $.get('results', function(response){ 
      $.each(response, function(index, value){ 
       results.push(value); 
      }); 
     }); 
    }; 
    getIt(); 
    console.log(results.length); 
}); 

コンソールは0を記録するので、配列は空です。 何が問題なのですか?アレイは、後で機能するために利用可能な でなければなりません。アドバイスをありがとう。

+0

'$ .get()'は非同期です。ピザが届く前にピザを食べようとしています。詳細については、重複としてマークした質問を参照してください。 –

+0

お返事ありがとうございました。私はそれを検索しようとしましたが、間違った方向に進みました。それは今より明確に聞こえる。ありがとう。 – BillCode

答えて

0

results配列を入力する前に使用しています。 GET /resultsが最初に戻るのを待つ必要があります。あなたのコードの残りの部分と仮定すると動作しますが、以下の変更が人口配列console.logます:$に.getは非同期であるため

$(function(){ 
    var results = []; 
    var getIt = function(){ 
     $.get('results', function(response){ 
      $.each(response, function(index, value){ 
       results.push(value); 
      }); 

      console.log(results.length); 
     }); 
    }; 
    getIt(); 
}); 
0

を、results変数は、コードが呼び出されたときに、空のままです。私が何を意味するか見るには、次のようにしてください:

$(function(){ 
    var results = []; 
    var getIt = function(){ 
     $.get('results', function(response){ 
      $.each(response, function(index, value){ 
       results.push(value); 
      }); 

      getIt(); 
      console.log(results.length); 
     }); 
    }; 


});` 
関連する問題