RxJava中的buffer()函數(shù)將源Observable變換一個(gè)新的Observable,這個(gè)新的Observable每次發(fā)射一組列表值而不是一個(gè)一個(gè)發(fā)射。
http://wiki.jikexueyuan.com/project/rxjava/images/chapter5_10.png" alt="" />
上圖中展示了buffer()如何將count作為一個(gè)參數(shù)來指定有多少數(shù)據(jù)項(xiàng)被包在發(fā)射的列表中。實(shí)際上,buffer()函數(shù)有幾種變體。其中有一個(gè)是允許你指定一個(gè)skip值:此后每skip項(xiàng)數(shù)據(jù),然后又用count項(xiàng)數(shù)據(jù)填充緩沖區(qū)。如下圖所示:
http://wiki.jikexueyuan.com/project/rxjava/images/chapter5_11.png" alt="" />
buffer()帶一個(gè)timespan的參數(shù),會(huì)創(chuàng)建一個(gè)每隔timespan時(shí)間段就會(huì)發(fā)射一個(gè)列表的Observable。
http://wiki.jikexueyuan.com/project/rxjava/images/chapter5_12.png" alt="" />