Я пытаюсь создать Observable из RxJS Subject
. Сначала я создаю класс EventObserver
и инициализируюсь Subject
как subject
.
Затем я создаю метод addToStream
для добавления событий к этой теме извне. Также один метод getObservableChanges
, чтобы получить Subject
как наблюдаемый снаружи.
Затем из другого файла (реагировать) я импортировал этот класс и передал такие события, как события щелчка и другие события.
В том же файле я сделал один метод слушателя, чтобы подписаться на новые обновления из этого EventObserver
, названного listenForEvents
.
Ничего не срабатывает и не происходит, когда я отправляю новые события.
import {Subject} from 'rxjs'
export default class EventObserver {
constructor() {
this.subject = new Subject()
}
addToStream(event) {
this.subject.onNext(event)
}
buildColumnState = (event) => {
// resolve event and return an object
return {m: 'ok'}
}
getObservableChanges() {
return this.subject.pipe(
switchMap(this.buildColumnState)
)
}
}
// file.js
import EventListener from './listners/EventObserver'
// in side class
constructor() {
this.eventListner = new EventListener()
this.listenForEvents()
}
// then
// add some events to stream
this.eventListner.addToStream(this)
// listen for events
listenForEvents(){
this.eventListner
.getObservableChanges()
._trySubscribe((e) => {
console.log(e)
})
}