defer

RxJS 5 defer

by Huy Le

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.0.1/Rx.min.js"></script>
<input id="input" >

JavaScript

let reply = '';
const input = document.getElementById("input");
const inputObs = Rx.Observable.fromEvent(input, 'keyup')
  .map(i => reply = i.currentTarget.value)
	.debounceTime(750)
  .switchMap(_ => defer);

const defer = Rx.Observable.defer(() => {
	console.log(`Me: ${b}`);
	if (reply === "hi") {
  	return Rx.Observable.of('hello');
  } else {
  	return Rx.Observable.of('hi');
  }
})

inputObs.subscribe(response => console.log(`Computer: ${response}`));