3
讓我們藉此觀察到:RxJava - 如何採取列表的第一個元素,並返回它作爲可觀察
Observable<List<UserProfile>> findUser =service.getUserProfiles()
我怎樣才能改變它,所以它返回的第一個元素作爲可觀察到的(而不是一個可觀測只包含第一個元素的列表)。我試過first()
和takeFirst()
,但它仍然返回一個列表。
讓我們藉此觀察到:RxJava - 如何採取列表的第一個元素,並返回它作爲可觀察
Observable<List<UserProfile>> findUser =service.getUserProfiles()
我怎樣才能改變它,所以它返回的第一個元素作爲可觀察到的(而不是一個可觀測只包含第一個元素的列表)。我試過first()
和takeFirst()
,但它仍然返回一個列表。
地圖吧!
Observable<List<UserProfile>> findUser = service.getUserProfiles();
Observable<UserProfile> firstUser = findUser
.filter(list -> !list.isEmpty())
.map(list -> list.get(0));
沒有看到what's回事getUserProfile()it's複雜,但對於這個
@Test
public void getFirstUser(){
Observable<List<Integer>> findUser =Observable.just(Arrays.asList(1,2,3));
Observable<Integer> user = findUser
.flatMap(Observable::from)
.first();
user.subscribe(System.out::println);
}
感謝。如果list.isEmpty()返回true,會發生什麼? – znat
在這種情況下,「過濾器」observable將不會發射任何項目。因此,下面的map()不會被調用,因爲過濾器observable沒有發射任何項目。 – Mehlyfication