Quiero exportar rxjs Subject con algún comportamiento predefinido (a través pipe() ).
por ejemplo, quiero exportar un tema que haga console.log en cada nuevo valor:
export const subj$ = new Subject() .pipe( tap(() => console.log('updated') ) Esto funciona, y puedo subscribe() a subj$ .
El problema es que de esta manera es imposible hacer subj$.next('foo') .
Por supuesto que puedo exportar dos variables para subscribe() y next() , pero eso es muy tonto
En realidad no puedes hacer esto. Debido a que la pipe convierte Subject en Observable y este registro es similar a este: new Subject().asObservable() .
Pero puede crear su propio Subject , por ejemplo, desde la fuente ( https://github.com/ReactiveX/rxjs/blob/master/src/internal/BehaviorSubject.ts ). Y haga cualquier función para invocar dentro.