JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/4.0.7/rx.all.js"></script>

Babel + JSX

var proxySubject = new Rx.Subject()

let source2 = proxySubject  
  .finally(() =>  proxySubscription.dispose())
  .map(x => x*2)

var source = Rx.Observable.timer(0, 1000)
.do(x => console.log('timer', x))

let proxySubscription = source.subscribe(proxySubject)

let sub = source.subscribe(x => {
    console.log('source', x)
})
let sub2 = source2.subscribe(x => {
    console.log(' source2', x)
})
setTimeout(() => {
  console.log('DISPOSE')
  sub.dispose()
  sub2.dispose()
}, 2500)