作用
字面意思減少捣染,也可以叫“聚合”或者“壓縮”
實際上的效果就是可以把一個被觀察者中的多個事件進行壓縮蒲犬,最后發(fā)射壓縮后的事件
示例用法
這里舉個例子,做一下累加計算
Observable.just(1, 2, 3, 4)//創(chuàng)建了一個有4個數(shù)字的被觀察者
.reduce(new BiFunction<Integer, Integer, Integer>() {
@Override
public Integer apply(Integer t1, Integer t2) {
return t1 + t2;//累加操作阅虫,如果是-就是累減操作史辙。发笔。依此類推
}
})
.subscribe(getObserver())//這里的觀察者依然不重要
這里前兩個數(shù)計算的結(jié)果會作為第二個計算的t1
傳進來押框,直到處理完最后一次計算
運行結(jié)果
10
分析
我們的被觀察者中有4個數(shù)敢辩,分別是1,2,3,4
reduce的過程:
t1 = 1懈涛;t2 = 2
計算:t1 + t2 = 3逛万;
t1 = 3;t2 = 3批钠;
計算: t1 + t2 = 6宇植;
t1 = 6;t2 = 4埋心;
計算 :t1 + t2 = 10指郁;
結(jié)束
最后,將聚合結(jié)果發(fā)射出來拷呆,觀察者接受為10
總結(jié)
這個系列只有干貨闲坎,如果大家有什么好的建議的話歡迎在下面評論〔绺或者覺得我哪里寫的不夠形象了腰懂,同樣可以提出來。