Javascript方法没有返回值

时间:2012-12-19 14:06:15

标签: javascript object

  

可能重复:
  How to return AJAX response Text?
  Variable doesn’t get returned JQuery
  AJAX not updating variable

我遇到此代码的问题:

/**
 * facebook Object*/
var fbObject = new Object();


/**
 * Function to get login status
 * @returns boolean Logged in status
 * */
fbObject.getLoginStatus = function() {
    FB.getLoginStatus(function(response) {
        if (response.status == 'connected') {
              console.log('logged in');
              return true;
            } else {
              console.log('not logged in');
              return false;
            }
    });
}

var status = fbObject.getLoginStatus();

    alert('Status: '+ status);

我的问题是getLoginStatus方法没有返回值。

2 个答案:

答案 0 :(得分:0)

该方法是异步的,您以同步方式使用它。在回调函数中返回值是不可能的。

答案 1 :(得分:0)

该函数是异步的,

我要做的是在实际的回调中运行“回调代码”:

    fbObject.getLoginStatus = function() {
    FB.getLoginStatus(function(response) {
        if (response.status == 'connected') {
              console.log('logged in');
              alert('Status: '+ true);
            } else {
              console.log('not logged in');
              alert('Status: '+ false);
            }
    });
}

或将回调传递给函数或停止,直到函数返回。