0

我没有使用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);            
    }
4

1 回答 1

0

picResponseandnameResponse被异步调用,这意味着您在and尚未设置playerData时调用该函数。您需要等待这两个函数完成后才能调用. 就像是 :picurlplayernameplayerData

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);            
    }
}
于 2013-06-16T11:12:19.663 回答