effect Method

Creates a new stream with a side effect, similar to the RxJS pipe method.

This method allows you to apply a sequence of RxJS operators to the state’s stream, performing actions or side effects whenever the state emits a value. This can be particularly useful for tasks like logging, debugging, or triggering external operations in response to emitted values

@param ...operators: OperatorFunction<any, any>[]
A sequence of RxJS operators that define the side effects to be applied to the emitted values

@returns this
The instance of the state, allowing for method chaining

API

effect(...operators: OperatorFunction<any, any>[]): this;

Example

import {switchMap, of} from 'rxjs';
import {signalState} from '@bitfiber/ng/rx';
 
const openDialog = signalState<boolean>(false, s => s
  // Performs an effect each time the state emits new value
  .effect(
    switchMap(isOpened => !isOpened ? dialog.open() : of(false)),
  ));