No tengo problemas para iniciar sesión o llamar a la API, solo tengo un problema para obtener la respuesta fuera de la devolución de llamada de la API. Sé que funciona de forma asíncrona, por lo que me gustaría ponerlo en una función que devuelva la respuesta. Aquí está mi idea¿Cómo uso una respuesta FB.api (JS SDK) fuera de la función de devolución de llamada?
//What I would like to be able to do
function fbUser(){
FB.api('/me', function(response){
//this logs the correct object
console.log(response);
});
//How do I get the response out here?
return response;
}
quisiera llamar a la función ME/api una vez al principio y luego pasarlo en torno a mis objetos de vista (sólo tiene que utilizar la respuesta dentro del backbone Visto) y en función de lo que es es necesario hacer otras llamadas de API. Actualmente tengo algunas cosas de trabajo llamando a la vista desde el interior de la devolución de llamada
//What I am doing now, but I lose the ability to pass anything other than the
//the current response to this function/View
FB.api('/me', function(response){
var newView = new facebookView({model: response});
});
que originalmente estaba tratando de esto, pero debido a que la llamada a la API es asíncrona tuve problemas con las cosas que son indefinidos
//What I started with but had async issues
var fbResponse;
FB.api('/me', function(response){
fbResponse = response;
});
//I would then try and use fbResponse but it would be undefined
I pierdo la primera respuesta cuando hago el segundo. Por ejemplo, mi primera llamada de API es para/me para obtener la información del usuario. Luego puedo llamar a/your-fb-id/photos y obtener fotos, pero si realizo la llamada a otra función dentro de la devolución de llamada de la API, solo puedo hacer referencia a esa respuesta. Perdí la respuesta original/me. Si pudiera obtener la respuesta de la devolución de llamada, entonces podría aprobarla según sea necesario. Entiendo que la respuesta solo es válida dentro de la devolución de llamada, entonces ¿cómo la hago válida fuera de la devolución de llamada teniendo en cuenta que es asincrónica?
¡Gracias! ¡Me ayudó exactamente en la misma situación! –