Javascript 函数在 Firebug 上返回未定义

标签 javascript jquery

<分区>

Possible Duplicate:
How to return the response from an AJAX call from a function?

在我的 App 命名空间上,我刚刚定义了一个函数:

版本 1

window.App = {
  isLogged: function () {
    $.get('/user/isLogged', function (data) {
      if (data == 'true') {
        return true;
      }
      return false;
    });
  }
};

版本 2

window.App = {
  isLogged: function () {
    var test = $.get('/user/isLogged');
    console.log(test.responseText);
  }
};

在版本 1 上,当我在 firebug 'App.isLogged()' 上尝试该功能时,我得到了一个不错的未定义 :S

在版本 2 上,当我在 firebug 上尝试该功能时,responseText 似乎未定义:stuck:

我对 javascript 很陌生,也许是范围问题...

我认为我的职能目标很明确,是否有更好的方法来实现这一点?

最佳答案

第一个版本 $.get 是异步的,这就是你得不到返回值的原因

第二个版本 $.get 返回没有 responseText 字段的延迟对象

window.App = {
  isLogged: function () {
    var dfd = $.Deferred();
    $.get('/user/isLogged', function (data) {
      if (data == 'true') {
        return dfd.resolve();
      }
      return dfd.reject();
    });
    return dfd.promise();
  }
};

$.when(App.isLogged()).then(function() {
  //your code
}).fail(function() {
  //fail code
});

关于Javascript 函数在 Firebug 上返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14414781/

相关文章:

javascript - React 错误 (TypeError) : Can't add property context, 对象不可扩展

javascript - 在文档中的所有元素完全加载后,触发 JS 事件的最可靠方法是什么?

javascript - threejs 混合 json 导出 + 无法读取未定义的属性 'type'

javascript - AngularJS:动态添加元素到 <li>

javascript - 检查一个数组是否包含在另一个数组中

javascript - HTML 内容如何根据​​动画动态变化?

javascript - 将可变页面加载到 div

javascript - Mongo 建立家谱

javascript - 如何将数组中的项目数组解析为 float/int

javascript - 单击 jQuery 更改 Bootstrap 指示器