Java 8 lambda 流有一个peek()
运算符允许您对每个项目执行 void 操作。这通常用于调试,但它也是一种欺骗和启动 void 操作而不映射到某些内容的好方法。
RxJava 中有类似的东西吗?也许我没有遵循良好的实践或反应性思考不够......但是在操作之前和之后创建状态标签真的很方便吗?如果peek()
不支持,有更好的模式可以遵循吗?
Observable<Item> Item= ...;
Label statusLabel = new Label();
Label resultLabel = new Label();
Observable<CalculatedItem> calculatedItem = calculated.subscribeOn(Schedulers.computation())
.peek(c -> statusLabel.setText("Working.."))
.map(c -> performExpensiveCalculation(c))
.peek(r -> statusLabel.setText(""));
calculatedItem.subscribe(c -> resultLabel.setText(c));
有一个方法doOnNext(Action1<Item> action)
将为流中的每个项目调用它。
文档 http://reactivex.io/documentation/operators/do.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)