我是Ember JS和任何UI框架的新手。面对下面的问题,如此善意的建议。
我有一个用户object
(json)拥有它group ids
(数组)。使用group Ids
我需要提取组名称和详细信息。使用下面的代码来获取详细信息。
异步调用正在进行并获取数据,但我没有进入nameGroup变量。
var nameGroupName = _.filter(user.userGroups, function(group){
return groupService.GroupDetails(group).then(function(result) {
return result.name;
});
});
请建议。
答案 0 :(得分:0)
由于您使用async
promises
,您必须等到调用下一次迭代。最好的方法是使用recursive
函数迭代数组,而不是使用lodash
或underscore
filter
方法。
以下是一个示例实现。
function getNameGroupName = function(userGroups, index){
groupService.GroupDetails(userGroups[index]).then(function(result) {
userGroups[index] = result.name;
index = index + 1;
if(index < userGroups.length){
getNameGroupName(userGroups, index)
}
});
}
var nameGroupName = getNameGroupName(user.userGroups, 0);