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)