마스터Q&A
접속유지
가입하기
안드로이드 Q&A
최근 질문
미답변 질문
태그
사용자
질문하기
마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다.
안드로이드펍
에서 운영하고 있습니다. [
사용법
,
운영진
]
인기있는 태그
초보어플개발
(3427)
안드로이드스튜디오
(2664)
안드로이드-초보어플개발
(1333)
안드로이드-스튜디오
(1086)
도와주세요-
(995)
이미지
(970)
listview
(866)
리스트뷰
(844)
오류
(805)
레이아웃
(693)
fragment
(675)
webview
(670)
android RXJava Observable의 각기 다른 동작이 모두 끝났을때....
0
추천
제목과 마찬가지로
RXJava의 각기 다른 동작이 모두 끝났을때 실행하고 싶은 메서드가 있습니다
그런데 zip 같은 경우는 같은 동작의 Observable만 묶을 수 가 있는것 같아서요ㅠㅠ
혹시 방법론이라도 제시가 가능 할까요??
rxjava
android
따깡
(
420
포인트)
님이
2022년 2월 18일
질문
zip은 같은 동작만 묶을 수 있다는게 무슨 말씀이신지? Observable을 두개이상 한꺼번에 실행할 수 있는 걸로 아는데요.
여러개의 API(모두 다른 응답) 를 zip 으로 묶어서
subscribe를 하려고 하는데 하나의 subscribe에서 다른 모두 다른 응답들을 어떻게 처리 할까요??
Observable.zip(observableList, "function")
에서 여러 응답에 대한 function 처리를 어떻게 해야할지 잘 모르겠어요ㅠㅠ
observableList에 있는 observable의 타입들이 다르다면, 결과를 처리할 때 포지션에 따라 타입을 체크하셔야 할 것 같은데요.
타입을 체크하신다는 말씀은 예를들어 test1ResponseForm이랑 test2ResponseForm이 있다면
~~.subscribe{ it ->
if (it is test1ResponseForm) {~~}
else if ( it is test2ResponseForm) {~~}
}
요런식으로 말씀이신가요??
zip(Iterable<? extends ObservableSource<? extends T>> sources, Function<? super Object[],? extends R> zipper)
zip 의 메소드 형태가 이렇게 되어 있고 코틀린을 사용하시니까, observableList를 고정사이즈로 가정하고.
아래처럼 할 수 있을 것 같은데요.
~~.subscribe{ it ->
(it[0] as test1ResponseForm).~
(it[1] as test1ResponseForm).~
}
별다른 이유가 없다면, 타입을 비교하는 것 보다는 바로 타입캐스팅을 하는 것이 더 좋은 접근방법입니다. 타입을 비교하게 되면 잘못 비교할 경우 해당코드를 스킵하지만, 타입캐스팅을 하게되면 에러가 있는 경우 금방 알 수 있죠.
감사합니다ㅠㅠㅠㅠ
큰 도움이 되었어요 진짜 고마워요~!!
Please
log in
or
register
to add a comment.
답변 달기
·
글에 소스 코드 보기 좋게 넣는 법
·
질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
답변이 채택되거나 답변에 댓글이 달리면 이메일로 알려드립니다:
답변이 채택되거나 댓글이 달리면 이메일로 알려드립니다
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면
로그인
하거나 혹은
가입
하세요.
...