Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <script src="https://unpkg.com/rxjs@5.4.3/bundles/Rx.js"></script>
</head>
<body>
</body>
</html>
 
const Observable = Rx.Observable
const Subject = Rx.Subject
console.clear()
console.log('[start]')
function httpRequest$(value) {
  const promise = new Promise(resolve => {
    setTimeout(() => {
      resolve(value + '!')
    }, Math.random() * 200)
  })
  return Observable.from(promise)
}
function log(result) {
  console.log(result)
}
httpRequest$('a').subscribe(log)
httpRequest$('ab').subscribe(log)
httpRequest$('abc').subscribe(log)
const dispatcher$ = new Subject()
const provider$ = new Subject()
dispatcher$
  .switchMap(value => {
    return httpRequest$(value)
  })
  .subscribe(result => {
    provider$.next(result)
  })
provider$
  .subscribe(log)
dispatcher$.next('A')
dispatcher$.next('AB')
dispatcher$.next('ABC')
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
ovrmrwpro
0viewers