2016-09-09 15 views
-1

APIを作成してjQueryスクリプトで使用しようとしました。しかし、コールバックに問題があります。 JavaScript:ajaxリクエストのコールバック

function findAll() { 
    var users; 
    $.ajax({ 
     url: "/user", 
     type: "GET", 
     dataType: "json", 
     success: function (data) { 
      users = data; 
     } 
    }); 
    return users; 
} 

受信したデータを返信してください。 ありがとうございます。

+0

あなたは、コールバック関数を記述し、成功の機能とそれを置き換えることができます。 var successCallback = function(結果){console.log(結果)}; success:successCallback – dharmesh

+0

リクエストの結果に依存するすべてのロジックをコールバックに配置する必要があります。詳細については、私が重複としてマークした質問を参照してください –

答えて

0

usersを同期的に返しているため、これは機能しません。値はundefinedになります。何が起こっている

が、これは次のとおりです。 - var users JavaScriptエンジンによって宣言され、undefinedに設定されている

  • XHR要求が
  • var usersを解決する際にAJAXコールバックが呼ばれるように登録されている(今undefinedを= )が返されます
  • usersにはXHR要求の応答が割り当てられます。しかし悲しいかな!遅すぎるとundefinedが既に返されています!

これは動作するはずです:

function returnUsers(users) { 
    return users; 
} 

var users = findAll(returnUsers); 

function findAll(callback) { 
$.ajax({ 
    url: "/user", 
    type: "GET", 
    dataType: "json", 
    success: callback 
}); 

} 
+0

はい、それは私が尋ねている理由: – zzheads

+0

答えを – nikjohn

+0

更新これはまた、成功関数戻り値がないfindAll – zzheads

関連する問題