Bất cứ ai có thể vui lòng giải thích sự khác biệt giữa Có thể quan sát, Có thể hoàn thành và Đơn trong RxJava với các ví dụ rõ ràng?
Trong trường hợp nào chúng tôi sử dụng một trong những tình huống khác?
Bất cứ ai có thể vui lòng giải thích sự khác biệt giữa Có thể quan sát, Có thể hoàn thành và Đơn trong RxJava với các ví dụ rõ ràng?
Trong trường hợp nào chúng tôi sử dụng một trong những tình huống khác?
Câu trả lời:
Observable
là khối xây dựng ReactiveX chung, của nguồn sự kiện phát ra các giá trị theo thời gian. (và do đó tồn tại trong mọi ngôn ngữ ReactiveX được mở rộng đến)
trong các sự kiện có thể quan sát ngắn gọn là:
onNext * (onCompleted | onError)? / (* không hoặc nhiều hơn? - không hoặc 1)
Single
và Completable
là các loại mới được giới thiệu độc quyền tại RxJava đại diện cho các loạiObservable
, có API ngắn gọn hơn.
Single
đại diện Observable
giá trị hoặc lỗi phát ra đơn lẻ.
Completable
đại diện Observable
rằng không phát ra giá trị, mà chỉ phát ra các sự kiện đầu cuối, onError
hoặconCompleted
Bạn có thể nghĩ về sự khác biệt như sự khác biệt của một phương thức trả về:
Bộ sưu tập các đối tượng - Có thể quan sát
Đối tượng đơn - Đơn
và phương thức không trả về giá trị nào (phương thức void) - Hoàn thành.
Single
có thể phù hợp khi bạn có định hướng tác vụ là Observable và bạn mong đợi một giá trị duy nhất, như Yêu cầu mạng được thực hiện một lần và trả về giá trị (hoặc lỗi), cuộc gọi mạng được vận hành theo kiểu một lần, có nghĩa là bạn không mong đợi nó trả về các giá trị bổ sung tăng ca. Một ví dụ khác là thao tác tìm nạp dữ liệu DB.
Completable
thích hợp khi bạn có một Observable
và bạn không quan tâm đến giá trị kết quả từ hoạt động hoặc không có bất kỳ giá trị nào. Ví dụ như cập nhật bộ đệm chẳng hạn, hoạt động có thể thành công / thất bại, nhưng không có giá trị.
Một ví dụ khác là một số hoạt động init đang chạy lâu mà không trả về bất kỳ thứ gì. Nó có thể là UPDATE / PUT cuộc gọi mạng chỉ dẫn đến chỉ báo thành công.
Trong mọi trường hợp, Completable và Single không thêm các khả năng mới nhưng chúng đang giới thiệu các API ngắn gọn và mạnh mẽ hơn, cho biết thêm về các hoạt động đằng sau Observable mà API đã tiếp xúc.
Biên tập:
Maybe
:RxJava2 đã thêm một kiểu mới được gọi là Maybe
,Maybe
là sự kết hợp của Completable
và Single.
Trong cùng một ngôn ngữ như trên, Maybe
có thể được coi như một phương thức trả về
Optional
một kiểu nào đó, Optional
là một trình bao bọc xung quanh Đối tượng cho biết rõ ràng liệu chúng ta có một số giá trị trong đó Object
hay không (thay vì null).
Với Maybe
chúng ta có thể có một số giá trị giống hệt như Single
hoặc không trả lại gì - giống như Completable
. Ngoài ra, giống như cả hai, chúng tôi có lỗi.
Maybe
có giá trị khi chúng ta muốn đánh dấu rằng một Observable
có thể không có giá trị và sẽ chỉ hoàn thành.
Một ví dụ sẽ được tìm nạp từ bộ nhớ cache, chúng tôi không nhất thiết phải có giá trị trong bộ nhớ cache, vì vậy trong trường hợp này, chúng tôi sẽ hoàn thành, vì chúng tôi sẽ nhận được onNext
giá trị từ bộ nhớ cache.
Điều này cũng xứng đáng để xử lý các giá trị không phải null trong một luồng với RxJava2.
Flowable
:Đầu tiên, hãy xác định áp suất ngược. Áp suất ngược là một phương tiện xử lý tình huống dữ liệu được tạo ra nhanh hơn mức có thể được xử lý. Flowable
có hỗ trợ áp suất ngược cho phép hạ nguồn để yêu cầu các mặt hàng. Bạn có thể đọc thêm về sự khác biệt ở đây .
Maybe<T>
, về cơ bản Single<T?>
,?
Single
là một Completable
với giá trị trả về không?
Một câu trả lời ngắn gọn mà tôi tìm thấy ở đây trên phần RXJava.