前言
在學習 RxJS 之前,我們要做環境設定,讓我們可以順利的完成我們的學習。
我是依 Getting Started With RxJS – Part 1: Setting Up The Development Environment & Creating Observables 這篇來實作。
實作
一開始建立測試的目錄,然後到目錄裡,透過 npm init -y 來建立 package.json,如下,
1 | mkdir rxjs-test |
再來就是安裝需要的套件, 如下,
1 | npm install rxjs core-js |
如果我們有用到 Promise 的話,需要多加上 core-js 哦! 如果不會用到話,就可以不需要加它。
再來就是在 package.json 的 “scripts” 中加入 “start” ,讓我們可以啟動 webpack-dev-server 來測試,
1 | "scripts": { |
因為打包是透過 webpack ,所以我們新增 webpack.config.js 來讓 webpack 執行打包作業,
1 | const path = require('path'); |
如果會用到 Promis 的話,就需要多加 core-js/fn/promise 。
因為我們是使用 TypeScript ,所以新增 tsconfig.json 來決定要輸出到那裡,因為 webpack 是從 dist 目錄去找,所以這裡也要設定輸出到 dist 目錄 ,如下,
1 | { |
準備好 TypeScript ,打包工具 webpack 後,再來就是新增測試的 index.html ,script 的 src 是 /bundle.js 是因為 webpack 產出的就是 bundle.js , 如下,
1 |
|
有了 UI 後,我們就可以寫簡單的 RxJS 練習看看了,所以建立 src 目錄,然後新增 index.ts 。 logItem function 主要是將內容顯示到網頁上。
example 1 : 是建立一個 Observable 的物件,complete() 後的 next 是不會輸出的哦!
example 2 : 從一個 number array 來產生一個 Observable 物件,再透過 pipe 將 map 與 filter 串接起來。
example 3 : 建立一個會發出 error 的 Obserable 物件。
example 4 : 透過 setTimeout 來模擬 Stream 的感覺,所以資料會過 3 秒後才會再呈現在 UI 上面。
Promise 是測試 js 在 IE 上是否可以正常運行,
1 | // 2 mb |
這時可以在 command 下輸入 npm start, 執行結果如下,
環境設定好了之後,我們就可以開始練習 RxJS 的相關操作了哦 :)
參考資料
Getting Started With RxJS – Part 1: Setting Up The Development Environment & Creating Observables
Angular2 why do we need the es6-shim
How can I polyfill Promise with webpack?