【发布时间】:2016-03-31 15:45:14
【问题描述】:
我试图在getUserAlbum 函数中调用checkLoginStatus 函数,在getUserAlbum 中我正在捕捉checkLoginStatus 的响应返回,并且代表该响应我需要在getUserAlbum 函数下工作。
但问题是这个getUserAlbum 函数不等待响应并执行我不想要的下一行。
这是我的功能:
var accessToken = '';
checkLoginStatus = function () {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
accessToken = response.authResponse.accessToken;
console.log(accessToken + ' => in check login status');
return accessToken;
} else {
return false;
}
});
}
getUserAlbum = function () {
var token = checkLoginStatus();
console.log(token + ' => in get album function'); // it log undefined here that is why else part executes.
if(token) {
FB.api(
"/me/albums/", {'accessToken': token},
function (response) {
if (response && !response.error) {
console.log(response);
}
}
);
} else {
alert("You are not logged in");
}
}
有人可以帮我解决这个问题。
【问题讨论】:
-
FB.getLoginStatus是异步的...使用callbacks -
你能告诉我如何使用回调
标签: javascript synchronization