RxJava:把一个回调变成一个可观察对象而不做任何改变



我对RxJava有点陌生,但我正在努力学习它。然而,在这种情况下,我有一个代码,我不能改变,它使用一个简单的回调模型。但回调不是直接调用的,我不能参数化它,但我仍然想使用Observables。基本的例子是,我调用myFunc(),它返回一个可观察对象并开始一个后台操作。然后后台操作会在myCallback中返回。我想要的是然后用结果调用onNext然后我可以用结果做一些事情。我只是不知道该用什么,这和实验对象有关吗?

private void doStuff() {
    myFunc().subscribe(new Action1<Object>() {
        @Override
        public void call(Object o) {
            System.out.println("DO SOMETHING WITH THE RESULT");
        }
    });
}
private void myCallback(Object result) {
    [SOMETHING].onNext(result);
}
private Observable<Object> myFunc() {
    //Do stuff which will return in myCallback
    return [SOMETHING]
}

PublishSubject:

PublishSubject<T> subject = PublishSubject.create();
subject
   // run in background
  .subscribeOn(Schedulers.computation()) 
  .doOnNext(item -> doSomething(item))
  //make sure you log errors somewhere!
  .subscribe(subscriber); 

订阅建立后:

subject.onNext(item1);
subject.onNext(item2);
subject.onCompleted();

相关内容

  • 没有找到相关文章

最新更新