$("#search")
.onAsObservable("keyup change")
.select( (ev) -> $(ev.target).val())
.where( (query) -> query.length > 2)
.throttle(300)
.distinctUntilChanged()
.select(queryMovie)
.switch()
.subscribe(updateMovies)
###
lastEvent = {}
currentDisplay = ""
$("#search").on("keyup change", (ev)->
ref = {}
lastEvent = ref
query = $(ev.target).val()
return if query.length < 3
setTimeout( ()=>
return if lastEvent != ref
return if currentDisplay == query
currentDisplay = query
queryMovie(query).then((results)=>
return if query != $(ev.target).val()
updateMovies(results))
, 300)
)
###