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)