Try RxJS.
This exposes power of Reactive Extensions and Linq in the Javascript. Example:
this.searcher = $(me._textboxSelector)
.toObservable("keyup")
.Select(function (_) {
return $(me._textboxSelector).val();
})
.Where(function (str) {
if (me._madeSomeHiding && str.length < me._minStringLength) {
$(me._itemsSelector).show();
}
This allows creating a filter on a list. So you can say if user typed 2 characters and stopped for 250ms then do something.