Skip to content

Instantly share code, notes, and snippets.

@lac5
Last active June 17, 2024 15:04
Show Gist options
  • Save lac5/938bb3d4194f85721309188b668e67d9 to your computer and use it in GitHub Desktop.
Save lac5/938bb3d4194f85721309188b668e67d9 to your computer and use it in GitHub Desktop.
/**
* Promise.any is the inverse of Promise.all
*
* Promise.all = reject first error or resolve all successes
* Promise.any = resolve first success or reject all errors
*/
Promise.any = function(promises) {
return Promise.all(promises.map(p => {
return p.then(
resolve => { throw resolve; },
reject => reject
);
})).then(
rejects => { throw rejects },
resolve => resolve
);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment