通过回调Ember js没有获得价值

时间:2017-09-22 06:13:18

标签: javascript ember.js callback

我是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;
     });
});

请建议。

1 个答案:

答案 0 :(得分:0)

由于您使用async promises,您必须等到调用下一次迭代。最好的方法是使用recursive函数迭代数组,而不是使用lodashunderscore 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);