我是jQuery / javascript的新手,并努力使'userData'对象公开可用。 Facebook的通话工作正常。在Facebook调用中,控制台根据我的需要记录“userData”对象。但是,我不知道如何公开对象,所以我可以重复使用它。控制台日志报告“userData”未定义。有人知道我做错了什么吗?提前致谢! 罗恩
FB.api('/me?fields=id,first_name,last_name,picture', function(userProfile) {
var userData = {
first_name : userProfile.first_name,
last_name : userProfile.last_name,
userid : userProfile.id,
picture : userProfile.picture
};
return userData;
});
console.log(userData);
答案 0 :(得分:1)
这是您的userData前面的var
关键字,它将其范围放在回调函数中。将其设置为全局变量,您可以在全局使用它。不是我实际建议你如何建立你的系统,但它对调试很有用。
var globalUserData;
FB.api('/me?fields=id,first_name,last_name,picture', function(userProfile) {
globalUserData = {
first_name : userProfile.first_name,
last_name : userProfile.last_name,
userid : userProfile.id,
picture : userProfile.picture
};
console.log(globalUserData);
// do more stuff with the user data here.
});
另请注意,{em}启动 FB API调用后会立即运行console.log
,这将在完成并触发回调之前很久。