Apolgies如果我的问题是基本的 - 我花了很多时间试图理解回调来解决这个问题,但我被困了!我还审查了其他类似的问题,但不能将我学到的东西应用于此。
我正在尝试修改标准的Ionic教程。应用程序的此服务部分旨在返回一组朋友数据以填充下拉列表。
在原始样本中,数据以硬编码值手动加载为例。你可以看到它向底部注释。
我的问题是如何让整个函数返回等待我的异步facebook调用的完成,这会带回实际数据来代替虚拟数据。
非常感谢!
约翰
angular.module('starter.services', [])
.factory('Friends', function() {
function friendsFunction() {
//Async FB API call to return friends of user
FB.api('/me/friends', function (response) {
var fbFriendData = [];
//Load friends into an array
for (var i = 0; i < response.data.length; i++) {
fbFriendData.push({
id: i,
fbid: response.data[i].id,
name: response.data[i].name
});
}
return fbFriendData;
});
}
var friends = friendsFunction();
//friends = [
// {id: 0, name: 'KJ'},
// {id: 1, name: 'Your Mum'},
// {id: 2, name: 'Nikki B'},
// {id: 3, name: 'Jesus'}
//];
return {
all: function() {
return friends;
},
get: function(friendId) {
// Simple index lookup
return friends[friendId];
}
}
});