android-如何在RxJava中链接任务

android-如何在RxJava中链接任务,第1张

概述我正在进行android应用程序注册,在该应用程序中,我需要一个接一个地执行几个任务任务1任务2任务3我想将这些任务一个接一个地链接起来,如果一个任务失败,则整个过程应该失败.我想通过Rxjava解决此问题,谁能告诉我如何使用rxJava实现此问题.(我已经浪费了5个小时,但是在RxJava中也找不到新手的解决方案)我尝试过的Observable.merge

我正在进行android应用程序注册,在该应用程序中,我需要一个接一个地执行几个任务

任务1
任务2
任务3

我想将这些任务一个接一个地链接起来,如果一个任务失败,则整个过程应该失败.

我想通过Rxjava解决此问题,谁能告诉我如何使用rxJava实现此问题.

(我已经浪费了5个小时,但是在RxJava中也找不到新手的解决方案)

我尝试过的

Observable.merge(task1,task2,task3).subscribe(new Observer<DataError>() {            @OverrIDe            public voID onSubscribe(disposable d) {            }            @OverrIDe            public voID onNext(DataError dataError) {            }            @OverrIDe            public voID onError(Throwable e) {            }            @OverrIDe            public voID onComplete() {             //this method is not called by rxJava            }        });

使用此方法,一切正常,但是rxJava不会调用onComplete()方法.

请帮忙〜

编辑-
每个任务都取决于先前的任务结果.一次应有一个任务.最佳答案假设我们有3个任务.从给定的整数数组中,找到偶数,将每个偶数乘以10,将每个数除以2

//A stream of observable to find even numbersprivate Observable<Integer> findEven(Integer number) {    return Observable        .just(number)        .filter(data -> data % 2 == 0);}//A stream of observable to multiply each number with 10private Observable<Integer> multiplyBy10(Integer evennumber) {    return Observable.just(evennumber).map(data -> data * 10);}//A stream of observable to divIDe each number with 2private Observable<Integer> divIDeBy2(Integer evennumber) {    return Observable.just(evennumber).map(data -> data / 2);}

那么,我们如何链接此任务?

Observable    .just(1,2,3,4,5,6,7,8)    //find even numbers    .flatMap(num -> findEven(num))    //Now multiply each even number by 10    .flatMap(num -> multiplyBy10(num))    //Now to each number divIDe 2     .flatMap(num -> divIDeBy2(num))    .subscribe(        // result: 10,20,30,40        result -> Log.v("","result: " + result),error -> Log.e("",error.getMessage())    );

希望这可以帮助. 总结

以上是内存溢出为你收集整理的android-如何在RxJava中链接任务 全部内容,希望文章能够帮你解决android-如何在RxJava中链接任务 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1145029.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存