Un Sujeto es un tipo especial de Observable que permite que los valores sean multidifundidos a varios Observadores. Los Sujetos son como EventEmitters
Copy class Subject < T > extends Observable implements SubscriptionLike {
static create : Function ;
constructor ();
observers : Observer < T >[];
closed : false ;
isStopped : false ;
hasError : false ;
thrownError : any ;
lift < R >(operator : Operator < T , R >) : Observable < R >;
next (value ?: T );
error (err : any );
complete ();
unsubscribe ();
_trySubscribe (subscriber : Subscriber < T >) : TeardownLogic ;
_subscribe (subscriber : Subscriber < T >) : Subscription ;
asObservable () : Observable < T >;
// Heredado de index/Observable
static create : Function ;
static if : typeof iif;
static throw : typeof throwError;
constructor (
subscribe ?: (
this : Observable < T > ,
subscriber : Subscriber < T >
) => TeardownLogic
);
_isScalar : boolean ;
source : Observable < any >;
operator : Operator < any , T >;
lift < R >(operator : Operator < T , R >) : Observable < R >;
subscribe (
observerOrNext ?:
| NextObserver < T >
| ErrorObserver < T >
| CompletionObserver < T >
| ((value : T ) => void ) ,
error ?: (error : any ) => void ,
complete ?: () => void
) : Subscription ;
_trySubscribe (sink : Subscriber < T >) : TeardownLogic ;
forEach (
next : (value : T ) => void ,
promiseCtor ?: PromiseConstructorLike
) : Promise < void >;
pipe ( ... operations : OperatorFunction < any , any >[]) : Observable < any >;
toPromise (promiseCtor ?: PromiseConstructorLike ) : Promise < T >;
}
Cada Sujeto es un Observable y un Observador. Se puede realizar una suscripción a un Sujeto, y llamar al método next() para proporcionarle valores, además de notificaciones de error y complete.