I have JavaSctipt Array of objects, like 
var companies = [{name:'A', userIds: [23,45], tel: 3434343434}, {name:'B', userIds: [98,568,656,54], tel: 554556445}];
function flat() {
   return companies.map(function(cmp) {
     return { 
      n: cmp.name 
      // xmlhttp remote call and callback to fetch users with these ids
      users: getUsersforThisOrg(cmp.userIds, function(usrs) { return usrs } 
     }
   });
}
var companiesWithUsers = flat();
Expected output of companiesWithUsers is
[
 {n:'A', users: [{username: 'user1', name: 'John Doe', ...]}, ...]
]
But it returns
[
   {n:'A', users: undefined}, ...]
]
it means map function returns before getUsersforThisOrg returns the remote result, is there any workaround to wait and append users from remote server.
