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