You could try a slightly different approach of loading group users. Since Group client object exposes Users property, you could load Group with Users property initialized like this:
ctx.load(group,'Users');
Example:
(function(){
var ctx = SP.ClientContext.get_current();
var groups = ctx.get_web().get_siteGroups();
var group = groups.getById(6);
ctx.load(group,'Users');
ctx.executeQueryAsync(function () {
var users = group.get_users();
var e = users.getEnumerator();
while (e.moveNext()) {
var user = e.get_current();
console.log(user.get_title());
}
},
function(sender,args){
console.log(args.get_message());
}
);
})();
Key points:
- Error handler was added for
SP.ClientContext.executeQueryAsync