Skip to content

Instantly share code, notes, and snippets.

@purplejacket
Created January 5, 2016 05:09
Show Gist options
  • Select an option

  • Save purplejacket/07fd1a7823fd96971887 to your computer and use it in GitHub Desktop.

Select an option

Save purplejacket/07fd1a7823fd96971887 to your computer and use it in GitHub Desktop.
Wrapping multiple calls to directory.getAccounts into a Promise
var getAccounts = function(directoryHref, usernames, callback) {
client.getDirectory(directoryHref, function(err, directory) {
var accountPromises = _.map(usernames, function(username) {
return new Promise(function(resolve, reject) {
var foundAccount;
directory.getAccounts({username: username, expand: 'customData'},
function(err, accounts) {
accounts.each(
function(account, cb) {
account.id = account.username;
foundAccount = account ;
cb();
},
function(err) {
resolve(foundAccount);
}
);
}
);
});
});
Promise.all(accountPromises).then(function(accounts) {
callback(_.compact(accounts));
});
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment