RxJS switchMap не изменяет входные данные - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь создать 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)
     })
}
...