Skip to content

Function: tap() ​

Call Signature ​

tap<R, FnReturn>(fn): (result) => Result<UnwrapOk<R>, UnwrapErr<R>>

Defined in: fp.ts:170

Takes a side-effect function and returns a function that accepts a Result. The returned function passes the Result through the side-effect function and returns the original Result unchanged.

Useful for debugging, logging, or performing side effects without modifying the Result.

Type Parameters ​

R ​

R extends Result

The input Result type

FnReturn ​

FnReturn

The return type of the side-effect function (ignored)

Parameters ​

fn ​

(result) => NonPromise<FnReturn>

Side-effect function to execute with the Result

Returns ​

A function that takes a Result, executes the side-effect function, and returns the original Result

(result): Result<UnwrapOk<R>, UnwrapErr<R>>

Parameters ​

result ​

R

Returns ​

Result<UnwrapOk<R>, UnwrapErr<R>>

Example ​

typescript
const result = pipe(
  ok("hello"),
  tap((result) => {
    console.log("Result:", result); // Logs the result (side-effect)
    return "something"; // Return value is ignored
  }),
  mapOk((data) => data.toUpperCase()), // Original result is passed through
); // { success: true, data: "HELLO" }

Call Signature ​

tap<R, FnReturn>(fn): (result) => Promise<Result<UnwrapOk<R>, UnwrapErr<R>>>

Defined in: fp.ts:173

Takes a side-effect function and returns a function that accepts a Result. The returned function passes the Result through the side-effect function and returns the original Result unchanged.

Useful for debugging, logging, or performing side effects without modifying the Result.

Type Parameters ​

R ​

R extends OrPromise<Result>

The input Result type

FnReturn ​

FnReturn

The return type of the side-effect function (ignored)

Parameters ​

fn ​

(result) => OrPromise<FnReturn>

Side-effect function to execute with the Result

Returns ​

A function that takes a Result, executes the side-effect function, and returns the original Result

(result): Promise<Result<UnwrapOk<R>, UnwrapErr<R>>>

Parameters ​

result ​

R

Returns ​

Promise<Result<UnwrapOk<R>, UnwrapErr<R>>>

Example ​

typescript
const result = pipe(
  ok("hello"),
  tap((result) => {
    console.log("Result:", result); // Logs the result (side-effect)
    return "something"; // Return value is ignored
  }),
  mapOk((data) => data.toUpperCase()), // Original result is passed through
); // { success: true, data: "HELLO" }