为什么这个Observable中没有任何回调?

时间:2015-03-14 02:47:55

标签: reactive-programming rx-java

我有一个名为loadBalls的函数,其第二个参数接受一个观察者。当调用loadBalls传递一个常规观察者时,该观察者将其onNext命中两次。因为我只对它第二次被击中感兴趣,所以我作为观察者传入AsyncSubject,然后在loadBalls调用之后订阅它。

secondsPassed = 0;
while(secondsPassed < 10) {
    try {
       Thread.sleep(1000);
       secondsPassed++;
AsyncSubject<List<Ball> asyncSubj = AsyncSubject.create();
loadBalls(id, asyncSubj);
asyncSubj.subscribe(new Observer<List<Ball>>() {
                                @Override public void onCompleted() {
                                    boolean complete = true;
                                }

                                @Override public void         
                                onError(Throwable e) {
                                    boolean problem = true;
                                }

                                @Override public void  
                                    onNext(List<Ball> balls) {
                                    boolean next = true;
                                }
                              });
} catch (InterruptedException e) {}

上述回调都没有被击中,但我知道第二个onNext存在,因为如果我只是这样做onNext会被击中两次:

loadBalls(id, same_observer_instance_as_above)

loadBalls的实现是一个我看不到的黑盒子,我想确认我上面使用AsyncSubject。

0 个答案:

没有答案