【问题标题】:Some concept about Rxjava: Observer pattern, and event关于 Rxjava 的一些概念:观察者模式和事件
【发布时间】:2016-05-28 02:37:36
【问题描述】:

我读了一些页面,它定义 Rxjava 是一个库,用于使用 Java VM 的可观察序列来编写异步和基于事件的程序。它基于观察者模式。

Observable observable = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
    subscriber.onNext("Hello");
    subscriber.onNext("Hi");
    subscriber.onNext("Aloha");
    subscriber.onCompleted();
}

});

在我看来,观察者模式就像按钮和按钮的监听器。如果你点击按钮,按钮会创建一个事件来通知监听器运行。

问题是:

  1. 我对按钮和监听器的概念理解错了吗?
  2. 我发现上面的代码文章说它会立即运行 ,我可以不立即通知观察者吗?在这个例子中, 我想发送我输入的任何字符串,而不是这三个字符串。

【问题讨论】:

    标签: java rx-java


    【解决方案1】:

    看看PublishSubject。它既是您可以订阅的可观察源,也可以向其发送事件。就 UI 按钮而言,您可以这样做:

    final PublishSubject<String> subject = PublishSubject.create();
    
    final Observable<String> o = 
        subject.doOnNext(...)
               .doOnError(...)
               .subscribe();
    

    在按钮监听器中:

    public void onEvent(Event event) {
        subject.onNext(event.name());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      • 2021-04-04
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多