create - 2
RxJS 5 create
HTML
<script src="https://npmcdn.com/@reactivex/[email protected]/dist/global/Rx.umd.js"></script>
JavaScript
const myObserver = (name) => {
return {
next: x => {
console.log(`Next: ${name} ${x}`)
},
error: err => {
console.log(`Error: ${err}`)
},
complete: () => {
console.log('Completed')
}
}
}
const source$ = Rx.Observable.interval(1000)
.do((v) => console.log(v)) // introduce side-effect to log purpose
.take(10)
// Output Warmth Observable
const published$ = source$.share()
subscriptionA = published$.subscribe(myObserver('SubA'))
setTimeout(() => {
subscriptionB = published$.subscribe(myObserver('SubB'))
}, 3000)
setTimeout(() => {
subscriptionA.unsubscribe()
subscriptionB.unsubscribe()
}, 6000)