2013-12-08 2 views
1

나는 RxScala를 배우려고합니다. Observable.interval(1 second).buffer(10 seconds)을 사용 중이며 값을 인쇄하기 위해 구독을하고 있지만 수신 거부 권리를 얻을 수는 없습니다. 구독을 탈퇴 한 후에도 계속 실행되지만 빈 결과가 나타납니다.수신 거부 후 내 구독 유지

내 코드 :

s.unsubscribe 

그리고 여전히 인쇄물을 얻을 수 있지만, 빈과 : 나는 탈퇴 몇 시간 후

buffer --> Buffer(0, 1, 2, 3, 4, 5, 6, 7, 8) 
buffer --> Buffer(9, 10, 11, 12, 13, 14, 15, 16, 17, 18) 
buffer --> Buffer(19, 20, 21, 22, 23, 24, 25, 26, 27, 28) 
buffer --> Buffer(29, 30, 31, 32, 33, 34, 35, 36, 37, 38) 

: 그것은 잘 결과를 출력

import scala.language.postfixOps 
import scala.concurrent.duration.DurationLong 
import scala.concurrent.duration.DurationInt 
import scala.concurrent.duration.Duration 
import rx.lang.scala._ 

val o = Observable.interval(1 second).buffer(10 seconds) 
val s = o.subscribe(
      { n => println("buffer --> " + n) }, 
      e => { e.printStackTrace() }, 
     () => { println("Completed!") }) 

버퍼 :

buffer --> Buffer() 

내 구독이 아직 실행 중이지만 비어있는 버퍼를받는 것 같아요. 구독을 어떻게 중지 할 수 있습니까?

+1

은 아마 코 세라 포럼은이 질문에 대한 더 나은 장소가 될 수 있습니다 : 그것은

버전 0.15.1에서 버그가 보인다? –

+0

@MarkLister 나는이 질문을 coursera 포럼 (https://class.coursera.org/reactive-001/forum/thread?thread_id=1858)에서 질문했고 대답을 얻었습니다. 그것은 버그 인 것 같습니다 : https://github.com/Netflix/RxJava/issues/559. Tks. –

답변

1

@MarkLister가 제안하고 답을 얻은 것처럼 coursera 포럼 (class.coursera.org/reactive-001/forum/thread?thread_id=1858)에서이 질문을했습니다. github.com/Netflix/RxJava/issues/559이