Я использую следующие функции:возвращает переменную из функции обратного вызова функции
function loop_perms(permissions) {
.... call check_perm here....
}
function check_perm(perm) {
var result;
FB.api(
{
method: 'users.hasAppPermission',
ext_perm: perm
}, function(response) {
result = response;
});
return result;
}
Теперь проблема в том, что я получаю undefined
от результата check_perm
, тогда как в консоли Firebug, я могу см., что response
имеет значение 0 или 1 (в зависимости от perm)
Кто-нибудь знает, что я делаю неправильно? Я предполагаю, что это имеет какое-то отношение к тому факту, что я пытаюсь захватить значение переменной внутри обратного вызова.
С уважением Nikhil Gupta.
Идеально. Спасибо @Felix :) – Stoic
, поэтому давайте скажем, что эта функция «loop_perms» также вызывается из какой-либо другой функции, и эта функция имеет дело с результатом «loop_perms», мне также нужно вставить обратный вызов в функцию «loop_perms»? и так далее? если да, есть ли способ отключить асинхронные вызовы FB.api, а не FB.init() в целом (я не уверен здесь) – Stoic
Вам нужно сделать полный перерыв в потоке кода, вырезать 'loop_perms' в две половины, один перед вызовом 'check_perm' и один за ним, который должен использоваться как функция возврата, заданная' FB.api'. – aaaaaaaaaaaa