Yêu cầu thg 1 10, 2019 9:37 SA 103 0 1
  • 103 0 1
+1

Hỏi về RxJava

Chia sẻ
  • 103 0 1

Hello mọi người,

mình mới bắt đầu tìm hiểu và thực hành về RxJava, mấy cái đơn giản và đơn lẻ thì mình có thể làm được, giờ hiện có bài toán mình muốn áp dụng RxJava vào thì mình chưa nghĩ ra cách giải quyết, mọi người giúp mình với.

Object A, B, data lưu trên Elasticsearch function getListA(), getListB() từ ES, retrun List<A>, List<b>

giờ mình muốn có 1 API getAll(), trả về JSON list gồm cả A và B. bình thường thì mình sẽ gọi getListA(), getListB() xong merge 2 kết quả về thành JSON tổng, giờ mình muốn thực hiện bằng RxJava để 2 function getListA() và getListB() chạy async, sau đó vẫn gộp 2 kết quả lại.

mọi người giúp mình với

Avatar Vờ v @Vo_Tu
thg 1 11, 2019 4:28 SA
Avatar Vờ v @Vo_Tu
thg 1 11, 2019 4:28 SA

1 CÂU TRẢ LỜI


Đã trả lời thg 1 11, 2019 3:30 SA
+1

Rx.merge() operator chạy đồng thời các stream và emit data mỗi khi stream nào trong nó emit data, nghĩa là khi sử dụng merge, data sẽ emit nhiều lần từ những stream khác nhau. Trong case của bạn muốn map các data thành một stream duy nhất thì Rx.zip() là phù hợp. Các data stream emit sẽ collect lại ở function map trong operator này và bạn chỉ cần implement function map để get final result.

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí