Need help with p-tap?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

sindresorhus
129 Stars 9 Forks MIT License 17 Commits 0 Opened issues

Description

Tap into a promise chain without affecting its value or state

Services available

!
?

Need anything else?

Contributors list

# 221
exec
test-fr...
nextjs
messeng...
11 commits
# 5,605
TypeScr...
typescr...
iterm2
exec
2 commits
# 123,563
React
Bash
Zsh
Rust
1 commit
# 697,928
JavaScr...
TypeScr...
1 commit
# 6,604
chalk
exec
vuejs2
sketch-...
1 commit

p-tap

Tap into a promise chain without affecting its value or state

Install

$ npm install p-tap

Usage

import pTap from 'p-tap';

Promise.resolve('unicorn') .then(pTap(console.log)) // Logs unicorn .then(value => { // value is still unicorn });

import pTap from 'p-tap';

getUser() .then(pTap(user => recordStatsAsync(user))) // Stats are saved about user async before the chain continues .then(user => { // user is the user from getUser(), not recordStatsAsync() });

import pTap from 'p-tap';

Promise.resolve(() => doSomething()) .catch(pTap.catch(console.error)) // Prints any errors .then(handleSuccess) .catch(handleError);

API

pTap(tapHandler)

Use this in a

.then()
method.

Returns a thunk that returns a

Promise
.

pTap.catch(tapHandler)

Use this in a

.catch()
method.

Returns a thunk that returns a

Promise
.

tapHandler

Type:

Function

Any return value is ignored. Exceptions thrown in

tapHandler
are relayed back to the original promise chain.

If

tapHandler
returns a
Promise
, it will be awaited before passing through the original value.

Related

  • p-log - Log the value/error of a promise
  • p-if - Conditional promise chains
  • p-catch-if - Conditional promise catch handler
  • More…

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.