我没有使用javascript的经验,因此这个愚蠢的问题......我不知道这个代码有什么问题...可能是它的两个变量的范围......但是我无法检索这些值函数中的变量...请帮忙。
function fetchFBData (userId)
{
//console.log (userId);
var picurl;
var playername;
FB.api('/'+userId+'/picture?width=50&height=50', picResponse);
FB.api('/'+userId, nameResponse);
function picResponse (response)
{
picurl = response.data.url;
console.log(picurl);
}
function nameResponse (response)
{
playername = response.name;
console.log (playername);
}
document.getElementById("demo1").playerData(playername, picurl);
}
答案 0 :(得分:0)
picResponse
和nameResponse
是异步调用的,这意味着当playerData
和picurl
尚未设置时,您正在调用playername
函数。在调用playerData
之前,您需要等待这两个函数完成。类似的东西:
function fetchFBData (userId)
{
var picurl;
var playername;
FB.api('/'+userId+'/picture?width=50&height=50', picResponse);
function picResponse (response)
{
picurl = response.data.url;
FB.api('/'+userId, nameResponse);
}
function nameResponse (response)
{
playername = response.name;
document.getElementById("demo1").playerData(playername, picurl);
}
}