第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

取第一項,不完成

取第一項,不完成

吃雞游戲 2023-09-13 16:51:11
有沒有辦法(運算符)來縮小/增強下面的代碼?我想獲取Observable 的第一個元素,但延遲其完成,直到源完成(這就是我使用 進行連接的原因ignoreElements)。public class SOTest {    private final TestScheduler scheduler = new TestScheduler();    @Test    public void take_first_and_do_not_complete() {        TestObserver<Long> test = Observable.interval(1, TimeUnit.SECONDS, scheduler)                .take(7)                .publish(o -> o                        .firstElement()                        .toObservable()                        .concatWith(o                                .doOnNext(e -> System.out.println("to be ignored: " + e))                                .ignoreElements()                        )                )                .doOnNext(e -> System.out.println("First is: " + e))                .test();        scheduler.advanceTimeTo(1, TimeUnit.SECONDS);        test.assertValueCount(1);        test.assertNotComplete();        scheduler.advanceTimeTo(5, TimeUnit.SECONDS);        test.assertValueCount(1);        test.assertNotComplete();        scheduler.advanceTimeTo(7, TimeUnit.SECONDS);        test.assertValueCount(1);        test.assertComplete();    }}
查看完整描述

1 回答

?
白衣染霜花

TA貢獻1796條經(jīng)驗 獲得超10個贊

怎么樣.distinctUntilChanged()

Observable.interval(1,?TimeUnit.SECONDS,?scheduler)
????.take(7)
????.distinctUntilChanged((a,?b)?->?true)
????.test();

除第一項外的所有項目均被比較器阻止。當上游完成時,流也完成。


編輯:

甚至更短,只需.distinct

Observable.interval(1,?TimeUnit.SECONDS,?scheduler)
????.take(7)
????.distinct(a?->?0)
????.test();


查看完整回答
反對 回復 2023-09-13
  • 1 回答
  • 0 關注
  • 94 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號