2015-11-07 22 views

Trả lời

13

Khi bạn muốn chờ đợi cho các hạng mục được phát ra từ hai quan sát (đồng bộ hóa chúng), bạn thường muốn một cái gì đó giống như Observable.zip:

Observable<String> o1 = Observable.just("a", "b", "c"); 
Observable<Integer> o2 = Observable.just(1, 2, 3); 
Observable<String> result = Observable.zip(o1, o2, (a, b) -> a + b); 

result sẽ là một quan sát được tạo ra việc áp dụng (a, b) -> a + b-o1 's và Các mặt hàng của o2. Kết quả có thể quan sát được là "a1", "b2", "c3".

Bạn cũng có thể sử dụng Obervable.zipWith với một phiên bản thực tế để có cùng tác dụng.

Lưu ý rằng điều này sẽ chấm dứt trên ngắn hơn có thể quan sát được khi không có gì để nén.

+1

Yay, hoạt động như một sự quyến rũ, cảm ơn! – FWeigl

+1

Chỉ hoạt động nếu số lượng mục vào Đài quan sát đầu tiên và thứ hai bằng nhau, nếu không bạn sẽ mất các mục phát ra !!! – Sniper

+0

@sniper Đã thêm thông báo. Cảm ơn –

Các vấn đề liên quan