6

私はajaxとreturn変数の問題を知っています、私はこれについてstackoverflowで読んでいました、私はコールバック関数を使わなければならないことを知っています、しかし私の場合はうまくいきませんでした、もちろん私が間違っている何か

私のコードはこれです:

var id_user=get_id_user_login();//undefined??????????

function get_id_user_login(){
    FB.api(                                                
         '/me',                     
          {fields:'id'},
          function(response){//callback       
                 console.log(response.id);//OK
                 return response.id;
           }
     );             
};
4

2 に答える 2

7

非同期であるため、値を返すことはできません。これを試して:

function customFunction(id) {
    console.log(id);
}

function get_id_user_login(){
    FB.api(                                                
         '/me',                     
          {fields:'id'},
          function(response){   
                 customFunction(response.id);
           }
     );             
};

get_id_user_login();
于 2012-12-11T15:11:48.170 に答える
-1

完璧です、これはうまく機能する例です:

function mostrarInvitaciones(){
FB.login(function(response)
{   
    var object = { method: 'apprequests', 
          message: 'Message Txt',
          filters: ['app_non_users'],
          max_recipients: '1',
          redirect_uri: 'here the url app'
    };
    // Function callback for get the values, because the Fb.api is async.
    function callback(response){
            function obtenerDatosLoginUsuario(id, name) {
                //console.log('Id Usuario desde custom: '+id);
                //console.log('Nombre usuario desde custom: '+name);
                document.getElementById('miid').innerHTML = id;
                document.getElementById('minombre').innerHTML = name;
            }
            function obtenerDatosAmigo(id, name) {
                //console.log('Id Amigo desde custom: '+id);
                //console.log('Nombre Amigo desde custom: '+name);
                document.getElementById('idamigo').innerHTML = id;
                document.getElementById('nombreamigo').innerHTML = name;
            }
            // Datos del Login Usuario
            function datosLoginUsuario(){
                FB.api('/me',{fields: 'name'}, function(response)
                {
                    //console.log(response.name);
                    //console.log(response);
                    obtenerDatosLoginUsuario(response.id,response.name);
                });
            }
            // Datos del amigo seleccionado
            function datosAmigoInvitado(){
                FB.api('/'+ response.to, function(response)
                {
                    //console.log(response.id);
                    //console.log(response.name);
                    obtenerDatosAmigo(response.id,response.name);
                });
            }
            // Call the function
            datosLoginUsuario();
            datosAmigoInvitado();

    };      
    // Facebook UI
    FB.ui(object, callback)

})

}

于 2015-08-11T14:31:58.973 に答える