Nie mam żadnych problemów z logowaniem się, a nawet wywoływaniem api, po prostu mam problem z uzyskaniem odpowiedzi poza wywołaniem api. Wiem, że działa asynchronicznie, więc chciałbym umieścić go w funkcji, która zwróci odpowiedź. Oto mój pomysłJak korzystać z odpowiedzi FB.api (JS SDK) poza funkcją zwrotną?
//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;
}
Chciałbym wezwać mnie funkcji/API raz na początku, a następnie przekazać go wokół moich widoków obiektów (wystarczy użyć odpowiedź wewnątrz szkieletu Obejrzane) oraz w zależności od tego, co jest potrzebne są inne wywołania api. Obecnie mam pewne rzeczy działa poprzez wywołanie widoku od wewnątrz zwrotnego
//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});
});
I orginally starał, ale ponieważ wywołanie API jest asynchroniczny miałem problemy z rzeczy jest niezdefiniowany
//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 tracę pierwszą odpowiedź, kiedy robię drugą. Na przykład moje pierwsze wywołanie api to/me, aby uzyskać informacje o użytkowniku. Mogę wtedy zadzwonić/twoje-fb-id/zdjęcia i uzyskać zdjęcia, ale jeśli wykonam połączenie z inną funkcją wewnątrz wywołania funkcji Photo Api, mogę tylko odwołać się do tej odpowiedzi, straciłem odpowiedź original/me. Gdybym mógł uzyskać odpowiedź z callbacku, byłbym w stanie przekazać go w razie potrzeby. Rozumiem, że odpowiedź jest poprawna tylko wewnątrz wywołania zwrotnego, więc jak mogę uczynić ją ważną poza wywołaniem zwrotnym, biorąc pod uwagę jej asynchroniczność?
Dziękujemy! Pomogło mi to w dokładnie tej samej sytuacji! –