0

重複
の可能性: jQuery Ajax 呼び出しから正しい戻り値を取得できません
関数からの AJAX 呼び出しから応答を返すにはどうすればよいですか?

私はこれを持っています:

  get_json = (url) ->
    $.getJSON "#{url}.json", {}, (json, response) ->
      return json

しかし、これは次のようにコンパイルされます。

getJson = function(url) {
  return $.getJSON("" + url + ".json", {}, function(json, response) {
    return json;
  });
};

..そして、応答オブジェクトを返します。代わりにjsonだけを返すにはどうすればよいですか?

4

1 に答える 1

5

遅延オブジェクトが返されています。これを使用してデータを取得してください。メソッドの現在の実装ではget_json、このJavaScriptは機能するはずです。

get_json("http://example.com").done(function(obj){
    console.log(obj);
});

コードは次のように簡略化できます。

get_json = (url) ->
    $.getJSON "#{url}.json"

変換には何も問題はありません。問題は、ajaxリクエストがどのように機能するかについての仮定です。

ajaxリクエストを送信し、ajaxリクエストを同期させずに関数からデータを返すurlパラメーターを持つ関数を使用することはできません(これはさまざまな理由で悪い考えです)。

于 2013-01-17T19:38:59.143 に答える