
Angualr一定對RxJS不陌生,但要輕易的駕馭它,可不是那麼容易。沒有那麼簡單...?一次偶然的機會,看到同事用RxJS將迴圈內的處理完畢,簡單俐落不說,還易讀易維護,這好東西不學~像話嗎??
我懂RxJS的學習並不簡單,所以這一系列的文章,我會以淺顯易懂的方式來闡述我學習RxJS的歷程。✍
一開始我們先從簡單的基礎觀念先熟悉,不貪多,每天進步一點就是一種成長;就跟少林寺學功夫一樣,先去挑水爬樓梯,蹲蹲馬步練穩下盤後,掌握降龍十八掌不再是難事。
所以~跟著我一起一步一步探索RxJS!

Source: 香蕉堆,陸續送出 ~ 第一串香蕉、第二串香蕉、第三串...第N串Process: 製程,包含各種步驟,如:
下一個(next)傳遞。包裝好的香蕉,準備出貨囉!pipe;也就是像管路依樣依序傳遞下去。Subscribe: 客戶要了解產線的生產狀況,當然會進行訂閱(Subscribe);訂閱了,就要開始生產囉!import { filter, from, map } from 'rxjs';
console.log('=== RxJS模擬香蕉生產線 ===');
const bananaSrc = [1, 2, 3, 4, 5];
const bananaLine$ = from(bananaSrc).pipe(
  filter((num) => num % 2 !== 0), // 模擬奇數個是壞掉的
  map((banana) => `${banana}: Weight`), // 秤重
  map((banana) => `${banana} => Wash`), // 清洗
  map((banana) => `${banana} => Package`) // 包裝
);
bananaLine$.subscribe(console.log); // 訂閱,並印出生產資料
//=== RxJS模擬香蕉生產線 ===
// 1: Weight => Wash => Package
// 3: Weight => Wash => Package
// 5: Weight => Wash => Package
RxJS就是結合Functional Programming,但這只是他的前菜而已,真正強大的功能在於簡化非同步(async)的處理程序。RxJS的思維,就跟生產線一樣,其中進行著被觀察及觀察的過程,想看的人可隨時可訂閱。被觀察(Observable): 一串一串的香蕉堆觀察動作(observe): filterBad -> Weight => Wash => Package訂閱(subscribe): 有人訂閱,代表生產正式啟動,你就可以拿到生產報告。day1囉,你仍然有很多的疑問,沒關係,我們接下來的每一天,都一點一滴地說明這一切,加油。看到 RxJS 的主題一定要大推!!期待完賽 ![]()
感謝Mike大的鼓勵,拜讀你的書及天梯網站,受益良多,有機會一定要請你簽名!
奇怪,icon變問號XD ==> 原來是emoji的問題