程序人生

搜索提示 我们平时使用的搜索框中,常常是当用户输入一部分内容后,

2022-08-10  本文已影响0人  为自己代颜_

最简单直接的方法如下:

RxTextView.textChanges(input)
    .debounce(500, TimeUnit.MILLISECONDS)
    .switchMap(text -> api.queryKeyword(text.toString()))
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(results -> {
        // handle results
    });

switchMap 这个操作符与 flatMap 操作符类似,但是区别是如果原 Observable 中的两个元素,通过 switchMap 操作符都转为 Observable 之后,如果后一个元素对应的 Observable 发射元素时,前一个元素对应的 Observable 尚未发射完所有元素,那么前一个元素对应的 Observable 会被自动取消订阅,尚未发射完的元素也不会体现在 switchMap 操作符调用后产生的新的 Observable 发射的元素中。
取消上次请求方式也可用requestDisposable?.dispose()方式

上一篇 下一篇

猜你喜欢

热点阅读