通俗理解RxJS(一)

2022-01-17 22:28:36 字數 1216 閱讀 8427

自學 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 什麼是回歸?假設線性回歸是個黑盒子,那按照程式設計師的思維來說,這個黑盒子就是個函式,然後呢,我們只要往這個函式傳一些引數作為輸入,就能得到乙個結果作為輸出。那回歸是什麼意思呢?其實說白了,就是這個黑盒子輸出的結果是個連續的值。如果輸出不是個連續值而是個離散值那就叫分類。那什麼叫做連續值呢?非常...