2017-08-13 10 views
1

$ .post要求を同期して実行することは可能ですか?原因asycnchronously実行しているの$ .post機能に

function loadTest() { 

var questionIDs = []; 

var count = 0; 

console.log("getting test"); 
$.post("db.php", function(data) { 
    obj = jQuery.parseJSON(data); 

    var questionCount = obj.length; 

    console.log(obj); 

    while (count != questionCount) { 

     questionIDs.push(obj[count].id); 
     count++; 
    } 
    console.log(questionIDs); 

    // $('#question').html(obj[0].question); 
}); 

$.post("getChoices.php", { 
    IDs: questionIDs 
}, function(data) { 
    console.log(data); 
    obj = jQuery.parseJSON(data); 

    console.log(obj); 

    while (q < 3) { 
     console.log("question"); 
     var w = 1; 
     while (w < 5) { 

      console.log(obj[q][w]); 
      w++; 
     } 
     q++; 
    } 

    // $('#question').html(obj[0].question); 
}); 

} 

送信されたときに、変数questionIDsは空になります:私は、次のコードを持っています。 $ .postからajaxに変更する必要がない可能性のあるソリューションはありますか?私はここで様々な解決策を試みましたが、私はそれらを働かせるように見えません。

+0

関数内で2番目の呼び出しをラップし、 'questionIDs 'にアクセスした瞬間に最初の関数から呼び出します。 '.done'部分の中に2番目の関数を入れることもできます。 – Axalix

+0

このようなことができます。 'var res = ''; (res + "" + response1))); '' $ '' '' '' '' '' '' ''' –

答えて

1

最初のリクエストが返信されたら、2回目のリクエストを必ず行ってください。 2番目のリクエストを最初のリクエストコールバックの中に入れます。これは次のようになります。

関連する問題