Yêu cầu thg 11 28, 2020 7:06 SA 167 0 1
  • 167 0 1
0

Làm sao để Observable emit nhiều giá trị

Chia sẻ
  • 167 0 1

Anh em cho mình hỏi làm sao để emit nhiều value trong một observable vậy ạ

Mình đang làm hàm download file trả về Observable để thông báo cho subcriber khi nào download xong. Tuy nhiên mình muốn thêm nhiều status như START, SUCCESS, PENDING thì đang bị mắc nhờ mọi người giúp đỡ.

Ý tưởng:

Observable.emit(PENDING)
                            .emit(START)
                            .flatMap(() -> {
                                emit(DOWNLOADING); apiService.downLoad()
                            })
                            .onSuccess(emit(SUCCESS));

1 CÂU TRẢ LỜI


Đã trả lời thg 11 30, 2020 3:07 SA
0

Bạn có thể tạo 1 class Result và gom các trường hợp success, failed, loading,... lại rồi emit thôi bạn, khi subscribe thì check result đó là loại gì rồi xử lý đúng là đc gửi bạn 1 số link tham khảo https://medium.com/swlh/kotlin-sealed-class-for-success-and-error-handling-d3054bef0d4e https://medium.com/androiddevelopers/sealed-with-a-class-a906f28ab7b5 https://phauer.com/2019/sealed-classes-exceptions-kotlin/

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í