彈珠圖塗鴉篇(一):RxJS

img

buffer:緩衝源 Observable 的值直到 closingNotifier 發出。
公車發車時由站長發出通知,會將目前還在排隊的旅客給請上車,當然會因為等待的旅客人數不同有可能每班車的人數也不同。

img

bufferTime:在特定時間週期內緩衝源 Observable 的值。
定時發車,例如每半個小時一班,時間一到公車就會把目前的旅客給載走,不需要透過站長通知。
img

bufferCount:緩衝源 Observable 的值直到緩衝數量到達設定的 bufferSize。
滿車發車,有些客運站會有 Uber 司機,他們習慣人數坐滿在發車。
img

官網範例有使用參數startBufferEvery,所以會有重疊現象。
img

bufferToggle:緩衝源 Observable 的值,openings 傳送的時候開始緩衝,closingSelector 傳送的時候結束緩衝。
一般廠房的生產線都會品管人員計畫性採樣,來檢測產品品質是否合格。
img

groupBy:根據指定條件將源 Observable 發出的值進行分組,並將這些分組作為 GroupedObservables 發出,每一個分組都是一個 GroupedObservable。
比較先進的廠房會透過檢測儀器直接幫我們將良品與不良品篩選出來。
img

partition:將源 Observable 一分為二,一個是所有滿足 predicate 函式的值,另一個是所有 不滿足 predicate 的值。
partition 看起來跟 groupBy 差不多,只是它拆成兩個獨立的 Observable。
img

map:將給定的 project 函式應用於源 Observable 發出的每個值,並將結果值作為 Observable 發出。
市面上有很多類似的產品都來自於同一家工廠,差別在於最後加工的部份塗上不同的 logo。
img

mapTo:每次源 Observble 發出值時,都在輸出 Observable 上發出給定的常量值。
對於物流中心而言他們只在意每輛貨車載幾箱,而不關心每個箱子到底裝什麼。
img

pairwise:將一系列連續的發送成對的組合在一起,並將這些分組作為兩個值的陣列發出。
交往最大的禁忌就是不要拿前一任來做比較。
img

scan:對源 Observable 使用累加器函式, 返回生成的中間值, 可選的初始值。
對於生意不好的店家而言,使用累計來客數做宣傳會比每日來客數效果好。
img

debounceTime:只有在特定的一段時間經過後並且沒有發出另一個源值,才從源 Observable 中發出一個值。
還記得 Windows 的睡眠設定嗎?你只要一定時間沒動作它就會睡著。
img

distinct:返回 Observable,它發出由源 Observable 所發出的所有與之前的項都不相同的項。
當你跟小孩說只能拿一個,他們會不加思索的當作每一種只能拿一個。
img

distinctUntilChanged:返回 Observable,它發出源 Observable 發出的所有與前一項不相同的項。
不得不說女生只要站在體重計上,除非數值沒變否則都會驚呼,不論它是變輕還是變重。
img

filter:透過只傳送源 Observable 的中滿足指定 predicate 函式的項來進行過濾。
據說有人發明一種 VR 眼鏡,可以過濾掉未成年跟老年人,讓你只看到你想看的。
img

first:只發出由源 Observable 所發出的值中第一個(或第一個滿足條件的值)。
不得不說有時候我們只在乎第一,就像搶頭香一樣,好像沒人採訪過第二名。
img

ignoreElements:忽略源 Observable 所傳送的所有項,只傳遞 complete 或 error 的呼叫。
鐵飯碗容易給人的刻板印象就是每天只等著下班,但是我相信大部分的人還是跟我們一樣努力做好事情。
img