簡體   English   中英

Rxjava-用批處理迭代列表

[英]Rxjava - Iterate the list with batch

我有一些字符串的列表,在這里我需要批量迭代列表。
范例:

val list = ["a","b","c","d","e","f"]
Observable.fromIteratable(list)
          .map{
          //here i need to get 4 items at a time
          //like in first iteration i need to get ["a","b","c","d"]
          //in second iteration i need to get ["e","f"]
        }

有沒有執行此操作的選項?

用戶buffer

定期將Observable發出的項目收集成束,然后發出這些束,而不是一次發出一個

 val list = arrayOf("1", "2", "3", "4", "5")
 Observable.fromIterable(list.asIterable())
     .buffer(4)
     .map { stringList: MutableList<String> ->
       println("insideMap -> $stringList")
       return@map "wow $stringList"
     }
     .subscribe { value: String -> println("OnResult $value")}
//Output
insideMap -> [1, 2, 3, 4]
OnResult wow [1, 2, 3, 4]
insideMap -> [5]
OnResult wow [5]

Buffer運算符將發出項目的Observable轉換為發出這些項目的緩沖集合的Observable。 Buffer的各種特定於語言的實現中有許多變體,它們的不同之處在於它們選擇將哪些項放入哪個緩沖區的方式。

請注意,如果源Observable發出onError通知,則Buffer會立即傳遞此通知,而無需先發出正在組裝的緩沖區,即使該緩沖區包含源Observable在發出錯誤通知之前發出的項目也是如此。 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM