callback on a variable which is inside a .each() loop
Posted
by
Stoic
on Stack Overflow
See other posts from Stack Overflow
or by Stoic
Published on 2010-12-25T23:28:02Z
Indexed on
2010/12/25
23:54 UTC
Read the original article
Hit count: 211
I have this function, which is doing an asynchronous call to FB.api method.
Now, i am looping over some data and capturing result of the above method call successfully.
However, I am using a .each
loop and I really can not figure out how to place my callback in this method, so that the outer method is only executed once.
Here are the functions I am using:
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.
});
});
}
I am trying to return the request
string from ask_for_perms
function.
Can anyone suggest me on where to place a proper callback to ask_for_perms
. Right now, however, it works for me, but the callback is being called many times since it is inside a for loop.
referencing: returning a variable from the callback of a function
© Stack Overflow or respective owner