Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sindresorhus/p-any
Wait for any promise to be fulfilled
https://github.com/sindresorhus/p-any
Last synced: about 5 hours ago
JSON representation
Wait for any promise to be fulfilled
- Host: GitHub
- URL: https://github.com/sindresorhus/p-any
- Owner: sindresorhus
- License: mit
- Created: 2016-10-21T05:28:21.000Z (about 8 years ago)
- Default Branch: main
- Last Pushed: 2022-07-09T03:54:12.000Z (over 2 years ago)
- Last Synced: 2025-01-07T18:17:16.694Z (8 days ago)
- Language: JavaScript
- Size: 19.5 KB
- Stars: 55
- Watchers: 6
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Funding: .github/funding.yml
- License: license
- Security: .github/security.md
Awesome Lists containing this project
- promise-fun - p-any
README
# p-any
> Wait for any promise to be fulfilled
Useful when you need the fastest promise.
You probably want this instead of `Promise.race()`. [Reason.](http://bluebirdjs.com/docs/api/promise.race.html)
*With [Node.js 15](https://medium.com/@nodejs/node-js-v15-0-0-is-here-deb00750f278), there's now a built-in [`Promise#any`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/any) method. The benefit of this package is that it has cancellation functionality.*
## Install
```
$ npm install p-any
```## Usage
Checks 3 websites and logs the fastest.
```js
import pAny from 'p-any';
import got from 'got';const first = await pAny([
got.head('https://github.com').then(() => 'github'),
got.head('https://google.com').then(() => 'google'),
got.head('https://twitter.com').then(() => 'twitter'),
]);console.log(first);
//=> 'google'
```## API
### pAny(input, options?)
Returns a [cancelable `Promise`](https://github.com/sindresorhus/p-cancelable) that is fulfilled when any promise from `input` is fulfilled. If all the `input` promises reject, it will reject with an [`AggregateError`](https://github.com/sindresorhus/aggregate-error) error.
#### input
Type: `Iterable`
#### options
Type: `object`
##### filter
Type: `Function`
Receives the value resolved by the promise. Used to filter out values that doesn't satisfy a condition.
### AggregateError
Exposed for instance checking.
## Related
- [p-some](https://github.com/sindresorhus/p-some) - Wait for a specified number of promises to be fulfilled
- [p-locate](https://github.com/sindresorhus/p-locate) - Get the first fulfilled promise that satisfies the provided testing function
- [More…](https://github.com/sindresorhus/promise-fun)