如何在RxJava中链接任务

问题描述 投票:3回答:1

我正在开发Android app注册,我需要逐个执行几项任务

象牙1 她很安静 闲逛

我想一个接一个地链接这些任务,如果任务失败,整个过程应该失败。

我想通过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
            }
        });

使用这种方法所有东西都运行正常但是qxxswpoi方法不是由rxJava调用的。

请帮忙〜

编辑- 每个任务都依赖于先前的任务结果。一次应该有一个任务。

android rx-java rx-java2 rx-android
1个回答
2
投票

假设我们有3个任务。从给定的整数数组中,查找偶数,将每个偶数乘以10,将每个数除以2

onComplete()

那么,我们如何将这项任务联系起来呢?

//A stream of observable to find even numbers
private Observable<Integer> findEven(Integer number) {
    return Observable
        .just(number)
        .filter(data -> data % 2 == 0);
}

//A stream of observable to multiply each number with 10
private Observable<Integer> multiplyBy10(Integer evenNumber) {
    return Observable.just(evenNumber).map(data -> data * 10);
}

//A stream of observable to divide each number with 2
private Observable<Integer> divideBy2(Integer evenNumber) {
    return Observable.just(evenNumber).map(data -> data / 2);
}

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.