私はajaxを通してデータをフェッチして何かをする例があります。この機能は再使用可能な状態です。どこでも電話できます。ajaxの同期処理ですか?
<script type="text/javascript">
function getData(value1,value2){
$.ajax({
url: URL,
data:{
email:value1,
age:value2
},
async:false,
dataType: "json",
type: "get",
success: function(data){
var result;
result = data.result;
console.log("result:"+result);
},
error: function(){
}
});
};
var data;
data = getData("email","age");
console.log("data:"+data);
</script>
私がajaxを呼び出すと、結果は後でデータが空になります。私はasync falseを使用しますが、ajaxではOKです。
どのようにするかjavascriptは応答を待ち、それ以上実行しないで、応答を取得してから実行を続行します。時間切れの設定は、異なるサーバーやサーバーで異なるクライアントにサーバーの応答速度に関する問題を引き起こすため、良い考えではありません。
SyncrhonousのXMLHttpRequestがあるため、エンドユーザの経験*への有害な影響のメインスレッドで推奨されていません* - というよりも、非同期コードから逃げ出し、それを使用する方法を学んでください。注:あなたのコードでは、 'getData'は何も返さないので、' data'が未定義です –
'getData'の先頭に' var result; 'を移動します。 result; ' –
**非同期**リクエストを含む回答が必要な場合 - https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-callを参照してください。 - それは最初に非同期要求を試みたように見えますが、非同期で作業することができなかったので同期に頼っていました –