亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

對列表中的所有項目執行一個任務,然后在 RxJava 中執行另一個任務

對列表中的所有項目執行一個任務,然后在 RxJava 中執行另一個任務

白衣染霜花 2023-05-24 16:21:49
不幸的是,我的 REST 刪除操作僅適用于一項。所以我想做的是,Observable.just(items).flatMapIterable { items -> items }.flatMap {                //call REST DELETE for every item            }.flatMap {                // call REST GET            }問題是正在為每個項目調用 GET 調用。我如何等待完成所有刪除完成然后執行 GET 調用?提前致謝。
查看完整描述

3 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

在你的情況下,你可以toList()這樣申請


fun doTask(items: List<String>):Observable<Boolean>{

        return Observable.fromIterable(items)

                .flatMap { processItem(it) }

                .toList()

                .toObservable()

                .flatMap { finalTask() }

    }


查看完整回答
反對 回復 2023-05-24
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

這個問題可以用zip解決。如果有人想要這個


fun doTask(items: ArrayList<String>): Observable<Boolean> {

    val list = arrayListOf<Observable<String>>()

    items.forEach {

        list.add(processItem(it))

    }

    return Observable.zip(list) {

    }.flatMap {

        finalTask()

    }

}


fun processItem(s: String): Observable<String> {

    print(s)

    return Observable.just(s.toUpperCase())

}


fun finalTask(): Observable<Boolean> {

    print("final")

    return Observable.fromCallable { true }

}


查看完整回答
反對 回復 2023-05-24
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

Observable.just("one", "two", "three", "four", "five").subscribe(new Consumer<String>() {

            @Override

            public void accept(String s) throws Exception {

                Log.d("ffff", s);//print: one, two, three, four, five

            }

        }, new Consumer<Throwable>() {

            @Override

            public void accept(Throwable throwable) throws Exception {


            }

        }, new Action() {

            @Override

            public void run() throws Exception {

                Log.d("ffff", "complete");//print: complete

            }

        });


查看完整回答
反對 回復 2023-05-24
  • 3 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號