如何使用可观察到的内部循环合并吗?

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

我想几个Obserables合并成一个。我用Observable.mergeWith()方法。我的要求是要在循环中合并。问题是没有排放的订阅发送。这个问题似乎是这样,我用Observable<String> observable = Observable.never();初始化主Observale但我没有找到合适的方式来做到这一点(尝试PublishSubject.create();Observable.empty();

import io.reactivex.Observable;
import io.reactivex.rxjavafx.observables.JavaFxObservable;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class NeverApplication extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage stage) throws Exception {

        Observable<String> observable = Observable.never();

        VBox vBox = new VBox();

        for (int i = 0; i < 4; i++) {
            Button button = new Button("Button " + i);
            vBox.getChildren().add(button);
            Observable<String> clickedObservale = JavaFxObservable.actionEventsOf(button).map(event -> button.getText());
            observable.mergeWith(clickedObservale);
        }

        stage.setScene(new Scene(vBox));
        stage.show();

        observable.subscribe(next -> System.out.println(next));
    }
}
rx-java rx-java2 reactive reactivex rx-javafx
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.