Chrome 콘솔에서 showFriends() 함수를 실행하면 해당 데이터를 볼 수 있습니다. 그러나 코드에서 $ .each 함수 다음에 showFriends()를 호출합니다 - 비동기 적으로 실행 중이므로 실패합니다.
내가 .promise 체인 시도했습니다() 완료 (showFriends();..?를 $ .each 기능을하지만 그 또한 실패 후
어떤 아이디어를
var myApp = {};
myApp.fbFriends = [];
function showFriends() {
console.log(myApp.fbFriends);
}
function getFriends() {
FB.api('/me/friends?fields=birthday', function(response) {
var friendsBirthdays = response.data;
friendsIdArray = friendsBirthdays.map(function(user) { return user.id });
createFriendsArray(friendsIdArray);
});
function createFriendsArray(friendsIdArray) {
$.each(friendsIdArray, function(index, value) {
FB.api(value.toString(), function(response) {
myApp.fbFriends.push(response);
});
});
showFriends();
}
}
'each'는 비동기 적이 지 않으므로'FB.api' 호출은 아마도 async입니다. – tymeJV
'done()'jquery – rockStar
@rockStar를 사용할 수도 있습니다. 어떻게해야합니까? '.done'을 호출하기 전에 약속이 필요합니다. –