У меня есть эта функция, которая выполняет асинхронный вызов метода FB.api.Теперь я зацикливаюсь на некоторых данных и успешно фиксирую результат вызова вышеупомянутого метода.
Однако я использую цикл .each
, и я действительно не могу понять, как поместить свой обратный вызов в этот метод, таквнешний метод выполняется только один раз.
Вот функции, которые я использую:
ask_for_perms($(this).val(),function(result) {
$('#some-div').html('<a onclick = "get_perms(result);" >get perms</a>');
});
function ask_for_perms(perms_requested,cb) {
var request = [];
$.each(perms_requested,function(i,permission) {
FB.api({
method: 'users.hasAppPermission',
ext_perm: permission
}, function(response) {
if (response == 0) request.push(permission);
request.join(',');
cb(request); // cb is called many times here.
});
});
}
Я пытаюсь вернуть строку request
из функции ask_for_perms
.Может кто-нибудь предложить мне, где сделать правильный обратный вызов на ask_for_perms
.Однако сейчас это работает для меня, но обратный вызов вызывается много раз, поскольку он находится внутри цикла for.
ссылка: возвращение переменной из обратного вызова функции