Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sindresorhus/p-try
Start a promise chain
https://github.com/sindresorhus/p-try
Last synced: 4 days ago
JSON representation
Start a promise chain
- Host: GitHub
- URL: https://github.com/sindresorhus/p-try
- Owner: sindresorhus
- License: mit
- Created: 2016-10-21T06:03:45.000Z (about 8 years ago)
- Default Branch: main
- Last Pushed: 2021-10-04T16:19:45.000Z (over 3 years ago)
- Last Synced: 2025-01-03T14:24:34.010Z (12 days ago)
- Language: JavaScript
- Homepage:
- Size: 13.7 KB
- Stars: 58
- Watchers: 6
- Forks: 12
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- Funding: .github/funding.yml
- License: license
- Security: .github/security.md
Awesome Lists containing this project
- promise-fun - p-try - Starts a promise chain (Packages)
README
# p-try
> Start a promise chain
[How is it useful?](http://cryto.net/~joepie91/blog/2016/05/11/what-is-promise-try-and-why-does-it-matter/)
## Install
```sh
npm install p-try
```## Usage
```js
import pTry from 'p-try';try {
const value = await pTry(() => {
return synchronousFunctionThatMightThrow();
});
console.log(value);
} catch (error) {
console.error(error);
}
```## API
### pTry(fn, ...arguments)
Returns a `Promise` resolved with the value of calling `fn(...arguments)`. If the function throws an error, the returned `Promise` will be rejected with that error.
Support for passing arguments on to the `fn` is provided in order to be able to avoid creating unnecessary closures. You probably don't need this optimization unless you're pushing a *lot* of functions.
#### fn
The function to run to start the promise chain.
#### arguments
Arguments to pass to `fn`.
## Related
- [More…](https://github.com/sindresorhus/promise-fun)
---
Get professional support for this package with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.