Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RxJava-在可观察链中执行peek()或void操作?_Java_Reactive Programming_Rx Java - Fatal编程技术网

RxJava-在可观察链中执行peek()或void操作?

RxJava-在可观察链中执行peek()或void操作?,java,reactive-programming,rx-java,Java,Reactive Programming,Rx Java,Java8Lambda流有一个peek()操作符,允许您对每个项执行一个void操作。这通常用于调试,但它也是一种很好的方法,可以在不映射到某个对象的情况下欺骗并启动一个void操作 RxJava中是否有与此等效的版本?也许我没有遵循一个好的实践或思考不够积极。。。但是在操作前后创建状态标签真的很方便吗?如果不支持peek(),是否有更好的模式可以遵循 Observable<Item> Item= ...; Label statusLabel = new Label(); Labe

Java8Lambda流有一个
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));
可观察项目=。。。;
标签状态标签=新标签();
Label resultLabel=新标签();
Observable CalculateItem=calculated.subscribeOn(Schedulers.computation())
.peek(c->statusLabel.setText(“工作…”)
.map(c->performExpensiveCalculation(c))
.peek(r->statusLabel.setText(“”);
CalculateItem.subscribe(c->resultLabel.setText(c));

有一个方法
doOnNext(Action1 action)
,将为流中的每个项调用该方法