반응형
[출처 - RxJava 프로그래밍 : 리액티브 프로그래밍 기초부터 안드로이드 까지 한번에]
본 글은 'RxJava 프로그래밍 : 리액티브 프로그래밍 기초부터 안드로이드 까지 한번에' 를 학습하면서 정리한 글입니다
마블다이어그램 참고 - http://reactivex.io/RxJava/javadoc/io/reactivex/Flowable.html#delay-io.reactivex.functions.Function-
delay 함수는 인자로 전달받는 time과 시간 단위 만큼 입력받은 Observable의 데이터 발행을 지연시켜주는 역할을 합니다.
testcode로 확인해 보겠습니다. (CommonUtils와 CommonUtilsk의 내용은 여기에서 확인 할 수 있습니다.)
Java
import io.reactivex.Observable;
import java.util.concurrent.TimeUnit;
public class delay_test {
public static void main(String[] args){
String[] data = {"1","7","2","3","4"};
Observable source = Observable.fromArray(data)
.delay(100L, TimeUnit.MILLISECONDS);
CommonUtils.exampleStart();
source.subscribe(it->{
long time = System.currentTimeMillis() - CommonUtils.startTime;
System.out.println(CommonUtils.getThreadName() + " | " + time + " | " + "value = " + it);
});
CommonUtils.sleep(1000);
}
}
kotlin
import io.reactivex.rxkotlin.toObservable
import java.util.concurrent.TimeUnit
fun main(){
val data = arrayOf("1","7","2","3","4")
val source = data.toObservable().delay(100L,TimeUnit.MILLISECONDS)
CommonUtilsk.exampleStart()
source.subscribe { it->
val time = System.currentTimeMillis() - CommonUtilsk.startTime
println(CommonUtilsk.getThreadName() + " | " + time + " | " + "value = " + it)
}
CommonUtilsk.sleep(1000)
}
결과
RxComputationThreadPool-1 | 112 | value = 1
RxComputationThreadPool-1 | 113 | value = 7
RxComputationThreadPool-1 | 113 | value = 2
RxComputationThreadPool-1 | 113 | value = 3
RxComputationThreadPool-1 | 113 | value = 4
delay를 제거한 결과는
main | 11 | value = 1
main | 12 | value = 7
main | 12 | value = 2
main | 12 | value = 3
main | 12 | value = 4
이렇게 100ms 정도 작습니다.
반응형
'2023년 이전 > ReativeX' 카테고리의 다른 글
RxJava, RxKotlin - 스케쥴러(1) (0) | 2020.01.21 |
---|---|
RxJava, RxKotlin - timeinterval 함수 (0) | 2020.01.20 |
RxJava - 수학관련 함수 (0) | 2020.01.20 |
RxJava,RxKotlin - 기타 함수 (0) | 2020.01.19 |
RxJava,RxKotlin - all 함수 (0) | 2020.01.19 |