0

これは私を夢中にさせています、私はできません 外部変数を取得します 内部データを取得

電話から書いているのでフォーマットが悪くて申し訳ありません。

  window.getReasons = function(line) {
    var $reasons;

    $reasons = "";
    $.get(window.location.protocol + "//" + window.location.host + "/" + "allLineReasons.js?line=" + line, function(returnData) {
      $reasons = returnData.toString();
      return console.log("T_T ----->" + returnData.toString());
    }, "html");
    console.log($reasons);
    return $reasons;
  };
4

2 に答える 2

3

理解しておくべき最も重要なことは$.get()、デフォルトで ASYNCHRONOUS であることです。したがって、 が値を返す前に、呼び出しに続くconsole.log()andreturnステートメントが実行されます。get()get()

ここでメソッドを利用して、when()返された遅延オブジェクトを処理することができます。get()

window.getReasons = function(line) {
    var reasons = '';
    $.when(
        $.get(window.location.protocol + "//" + window.location.host + "/" + "allLineReasons.js?line=" + line)
    ).done(function(jqxhr) {
        data = jqxhr[0];   
        reasons = data.toString();
    });
    console.log(reasons);
    return reasons;
}
于 2013-05-08T19:24:30.347 に答える
1

$reasons は、GET がサーバー上で完了し、応答が返されるまで更新されません。ただし、リクエストが行われた直後に console.log が実行されます。

于 2013-05-08T19:10:20.787 に答える