rxjs hot vs cold observable
by wuct
HTML
<script src="https://unpkg.com/rxjs/bundles/Rx.min.js"></script>
Babel + JSX
const subject = new Rx.Subject()
console.log('start')
const result = outterSubject.switchMap((outter) => {
console.log('outterSubject: ', outter)
const innerSubject = new Rx.Subject()
return innerSubject
.startWith(1)
.map(inner => ({
value: inner,
update: v => innerSubject.next(v),
}))
}).share()
result.subscribe(({ value, update }) => {
console.log('result 1: ', value)
})
let n = 0
result.subscribe(({ value, update }) => {
console.log('result 2: ', value)
if (n > 3) return
setTimeout(() => {
n = n + 1
update(n)
}, 1000)
})
outterSubject.next(2)