自學 rx 快有乙個周了, 它非常適合處理複雜的非同步場景。結合自己所學,決定寫系列教程。
我認為, rx 中強大的地方在於兩處
在 rx 中,我們先預裝好管道,通過管道流通資料 。這些管道的**多種, create ,from, fromevent, of .., 通過操作符將管道 拼接,合併,對映...形成最終的資料模型 。
對於管道來說,有兩點非常重要
在很多教程中, rx 往往以這個例子開始 :
const example = rx.observable.create ((observer) => )
observer.next(10);
return () =>
})const unsubscribe = example.subscribe((a) => )
//結果當然是 10, 8.
這個例子發現了兩種相似的設計模式
迭代器模式:類似於 js 6 增加的迭代器 。
const iterator = [1, 2, 3][symbol.iterator]();
while(true)
觀察者模式: 事件模型是最常見的觀察者模式, 定義生產者與消費者,生產者發出值,消費者收到訊息,並執行相應行文 。 observable 與其不同的是, observable 是拉模型,懶執行,只有指定訂閱者,生產者才會派發。 rx 中的推模型實現subject 就是採用觀察者模式,不管有沒有訂閱者,都會推送資料 。
rx 如此高效和強大,得益於其強大的操作符 。
主要包含下面幾類
很多大牛介紹,在相對簡單的情況下,大可不必使用 observable ,promise 足以應對。
類似於下面的模型
new promise ((resolve, reject) = {})
.then()
.then()
.then() ...
這種模型非常大程度改善了 **地獄, 也能處理大部分的非同步場景,name 對於 rx , 它有哪些地方不足呢 ?
return () =>
})const unsubscribe = example.subscribe((a) => )
create 會返回一直函式,這個函式用於清理管道執行產生的垃圾,比如這裡的定時器 。呼叫 unsubscribe 會取消訂閱,並執行清理函式。 通俗理解「推薦演算法」(一)
對博文機器學習入門 協同過濾演算法 推薦演算法 中,電影推薦示例的通俗理解。業務描述 1 有 小明 小花 小美 小張 小李 這5個使用者。2 有 電影1 電影2 電影3 電影4 電影5 電影6 電影7 這7部電影。3 每個使用者可以對看過的電影打整數分值,最低分1分,最高分5分,0分表示沒有看過該電...
通俗理解線性回歸(一)
本人已經打算將這一系列博文做成動畫趣味科普的形式來呈現,感興趣的話可以點這裡。0 什麼是回歸?假設線性回歸是個黑盒子,那按照程式設計師的思維來說,這個黑盒子就是個函式,然後呢,我們只要往這個函式傳一些引數作為輸入,就能得到乙個結果作為輸出。那回歸是什麼意思呢?其實說白了,就是這個黑盒子輸出的結果是個...
通俗理解線性回歸(一)
0 什麼是回歸?假設線性回歸是個黑盒子,那按照程式設計師的思維來說,這個黑盒子就是個函式,然後呢,我們只要往這個函式傳一些引數作為輸入,就能得到乙個結果作為輸出。那回歸是什麼意思呢?其實說白了,就是這個黑盒子輸出的結果是個連續的值。如果輸出不是個連續值而是個離散值那就叫分類。那什麼叫做連續值呢?非常...