You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					59 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					59 lines
				
				1.3 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								# p-try [](https://travis-ci.org/sindresorhus/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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								$ npm install p-try
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Usage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								const pTry = require('p-try');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(async () => {
							 | 
						||
| 
								 | 
							
									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
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- [p-finally](https://github.com/sindresorhus/p-finally) - `Promise#finally()` ponyfill - Invoked when the promise is settled regardless of outcome
							 | 
						||
| 
								 | 
							
								- [More…](https://github.com/sindresorhus/promise-fun)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## License
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								MIT © [Sindre Sorhus](https://sindresorhus.com)
							 |