2017-01-17 10 views
1

私は新しいリアクティブプログラマーです。私は観測者のonNextメソッドを延期して呼びたいと思っていました。Observable.deferのオブザーバーのonNextメソッドを呼び出す

使用すると、1人の加入者からのみをonNext呼び出すことができますので、例 -

Observable.create(new Observable.OnSubscribe<Integer>() { 
    @Override 
    public void call(Subscriber<? super String> observer) { 
     try { 
      if (!observer.isUnsubscribed()) { 

       // While using create, can call observer.onNext   
       for(int i=0;i< 10 ;i++) 
        observer.onNext(""); 

       observer.onCompleted(); 
      } 
     } catch (Exception e) { 
      observer.onError(e); 
     } 
    } 
}); 

Observable.defer(new Func0<Observable<String>>() { 

    @Override 
    public Observable<String> call() { 

     // I want call observer.onNext("") here 

       return Observable.just(""); 
    } 

}); 

答えて

0

を見てみましょう。あなたもこのように、購読方法の内側に、この「onNext」と呼ぶことになる。この観測可能を購読することができ、

final Subscriber<String> subscriber = new Subscriber<String>() { 
     @Override 
     public void onCompleted() { 

     } 

     @Override 
     public void onError(Throwable e) { 

     } 

     @Override 
     public void onNext(String s) { 

     } 
    }; 

    Observable.defer(new Func0<Observable<String>>() { 

     @Override 
     public Observable<String> call() { 

      // I want call observer.onNext("") here 

      subscriber.onNext("Test"); 
      return Observable.just("dasdsa"); 
     } 

    }); 

:しかし、私は、このようなものを1人の加入者を作成し、この加入者からonNextコールすると言うでしょう

Observable.defer(new Func0<Observable<String>>() { 

     @Override 
     public Observable<String> call() { 

      // I want call observer.onNext("") here 
      return Observable.just("dasdsa"); 
     } 

    }).subscribe(new Action1<String>() { 
     @Override 
     public void call(String s) { 
      //on Next was called after the subscribe 
     } 
    }); 

私はそれがより有用なものを決めるのはあなた次第だと思っています。私は助けられたと思います!

関連する問題