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));