0

私はjavascriptの経験がないので、このばかげた質問...このコードの何が問題なのかわかりません... 2つの変数の範囲である可能性があります..しかし、変数の値を取得できません関数で...助けてください。

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

picResponsenameResponseは非同期的に呼び出されます。つまり、とがまだ設定されていない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 に答える