可能重复:
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方法没有返回值。
答案 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);
}
});
}
或将回调传递给函数或停止,直到函数返回。