我的要求是这样的。
如果我使用过滤器,它会忽略错误的项目,如果没有设置标志,我不想忽略当前的响应。
我们如何使用 RxJava,FlatMap和Filter实现这一目标?
答案 0 :(得分:2)
您不需要filter
。只需检查flatMap
中的状态即可。如果已设置,请触发请求并致电startWith
以使其与原始版本连接(您可以使用任何代码替换startWith
以根据需要合并结果);如果没有,请使用just
来包装响应。这是一个例子:
class MyResponse {
boolean status;
public MyResponse(boolean status) {
this.status = status;
}
public static Observable<MyResponse> request() {
return Observable.just(new MyResponse(false));
}
}
Observable<MyResponse> response = Observable.just(new MyResponse(false));
response.first().flatMap(r -> {
if (r.status) {
return MyResponse.request().startWith(r);
} else {
return Observable.just(r);
}
});
答案 1 :(得分:0)
只需使用过滤器
MyScatterPlot plot = new MyScatterPlot();
plot.drawImage();
plot.saveBufferAsImage("MyGraph.png");