sindresorhus/p-try

Start a promise chain

62

stars

17

commits

JavaScript

primary language

Sep 16, 2025

updated

README

p-try

Start a promise chain

How is it useful?

Install

npm install p-try

Usage

import pTry from 'p-try';

pTry(() => {
	return synchronousFunctionThatMightThrow();
})
.then(value => {
	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.

Contributors

sindresorhus

12 commits

BendingBender

2 commits

coreyfarrell

1 commits

LinusU

1 commits

sindresorhus/p-try

Start a promise chain

62

stars

17

commits

JavaScript

primary language

Sep 16, 2025

updated

README

p-try

Start a promise chain

How is it useful?

Install

npm install p-try

Usage

import pTry from 'p-try';

pTry(() => {
	return synchronousFunctionThatMightThrow();
})
.then(value => {
	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.

Contributors

sindresorhus

12 commits

BendingBender

2 commits

coreyfarrell

1 commits

LinusU

1 commits

Languages

JavaScript

73.0%

TypeScript

27.0%