Emitter Class
Extends the AbstractEmitter
class and provides functionality to create streams,
handle subscriptions, emit values to subscribers, and integrate with other reactive sources
such as emitters, states, subjects, observables.
The Emitter
class is typically used when you need a straightforward emitter that can
broadcast values or events to all its subscribers or other reactive sources, such as emitters,
states, subjects
@template T
The type of data emitted by this emitter
API
class Emitter<T> extends AbstractEmitter<T> {
readonly $: Observable<T>;
initialize(): this;
complete(): void;
manage(...operators: OperatorFunction<T, T>[]): this;
emit(value: T): this;
select<I extends any[]>(...inputs: [...EmitterOrObservableTuple<I>, SpreadFn<I, T>]): this;
zip<I extends any[]>(...inputs: [...EmitterOrObservableTuple<I>, SpreadFn<I, T>]): this;
wait<I extends any[]>(...inputs: [...EmitterOrObservableTuple<I>, SpreadFn<I, T>]): this;
receive(...inputs: EmitterOrObservable<T>[]): this;
receive<I>(input: EmitterOrObservable<I>, reducer: (value: I) => T): this;
transmit(...outputs: (EmitterOrSubject<T> | EmitterOrSubject<void>)[]): this;
transmit<O>(output: AbstractState<O>, reducer: (value: T, state: O) => O): this;
transmit<O>(output: EmitterOrSubject<O>, reducer: (value: T) => O): this;
effect(...operators: OperatorFunction<any, any>[]): this;
tap(observer: Partial<Observer<T>>): this;
tap(next: (value: T) => void): this;
}
Example
import {emitter} from '@bitfiber/rx';
// Creates an emitter
const event = emitter<string>();