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))
.take(10)
// Output Hot Observable
const published$ = source$.publish()
const subscriptionA = published$.subscribe(myObserver('SubA'))
const subscriptionB = published$.subscribe(myObserver('SubB'))
setTimeout(() => {
subscriptionA.unsubscribe()
subscriptionB.unsubscribe()
}, 6000)
// Can be invoked at any point after the call to publish()
// => in order to build the underlying subscription
const subscription = published$.connect()
setTimeout(() => {
subscription.unsubscribe()
}, 3000)