Oturum açmada veya api çağrısında herhangi bir sorun yaşıyorum, yalnızca yanıtı api geri çağırma dışında almakla ilgili bir sorun yaşıyorum. Eşzamansız olarak çalıştığını biliyorum, bu yüzden cevabı geri döndürecek bir işleve koymak istiyorum. Burada başlangıçta bir defa/me API işlevi çağırmak ve sonra benim bakış nesnelere dolaştır (Sadece Omurga Görüntüleme iç yanıtını kullanın) ve istiyorum benim fikrimGeri arama işlevinin dışında bir FB.api (JS SDK) yanıtını nasıl kullanırım?
//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;
}
olduğunu ne bağlı diğer api çağrılarını yapmak gerekiyordu. Şu anda bazı şeyler
//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});
});
Ben orginally bu çalışıyordum geri arama içinden görünümü çağırarak çalışan, ancak API çağrısı asenkron olduğu için işler
//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
Ben tanımlanmamış olan ile sorunları vardı ikincisini yaptığımda ilk cevabı kaybedeceğim. Örneğin, ilk api çağrısı, kullanıcı bilgisini almak için/me. Daha sonra/fb-id/fotoğraflarını çağırabilir ve fotoğraf çekebilirim, fakat eğer fotoğraf api çağıranın içinde başka bir işleve çağrı yaparsam, sadece o yanıtı orijinal/ben cevabını kaybettiğime de değinebilirim. Yanıtı geri aramadan alabilirsem, gerektiğinde onu aktarabilirdim. Yanıtın sadece geri aramada geçerli olduğunu anlıyorum, bu yüzden asenkronizasyon hesaba katılırken geri arama dışında nasıl geçerli hale getirebilirim?
Teşekkür ederiz! Tam olarak aynı durumda bana yardımcı oldu! –