初学者在JS和as3

时间:2013-06-16 11:07:09

标签: javascript actionscript-3 facebook-graph-api

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

1 个答案:

答案 0 :(得分:0)

picResponsenameResponse是异步调用的,这意味着当playerDatapicurl尚未设置时,您正在调用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);            
    }
}