Javascript变量没有更新值

时间:2013-05-08 19:05:12

标签: javascript

这让我疯狂,我无法获取外部变量获取内部数据

很抱歉,我正在通过电话编写糟糕的格式,如果有人可以帮我解决格式,我很感激

  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;
  };

2 个答案:

答案 0 :(得分:3)

最重要的是你要理解的是$.get()默认是ASYNCHRONOUS。所以发生的事情是,在console.log()返回其值之前,您return调用后的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;
}

答案 1 :(得分:1)

直到GET在服务器上完成并且返回响应之后才会更新$ p。的原因。但是你的console.log将在发出请求后立即执行。