当用户在ui上更改内容时,“无尽的”Observable会发出一个参数项。
取决于这个项目,我需要做一个请求。一旦参数项更改,应停止请求并启动新请求。
parameterObservable
.switchMap(this::search) // to stop an restart the request with new params
.toList()
.subscribe(resultList -> {/* do something*/});
问题在于,toList运算符等待parameterObservable完成。哪个不会发生。
要使toList工作,我可以这样做:
parameterObservable
.subscribe(params -> search(params).toList()
.subscribe(/* do something */)
);
但是缺少switchMap。
我怎样才能做到这一点?
答案 0 :(得分:2)
这个怎么样:
parameterObservable
.switchMap(params -> search(params).toList())
.subscribe(resultList -> {/* do something*/});