使用場景
在一些,需要對事件更為精確的控制的場景下沒比如我們想要監(jiān)聽點擊事件,但是點擊三次之后就不需要監(jiān)聽了。
那么,這時候,引入rxjs進行功能開發(fā),是比較遍歷有效的,能讓我們省去,對事件的監(jiān)聽并記錄點擊的狀態(tài),以及需要處理取消今天的一些邏輯上的心理負擔。
圍繞異步處理

就Promise的優(yōu)勢而言,它帶來了與回調(diào)函數(shù)不一樣的編碼方式——鏈式調(diào)用,將數(shù)據(jù)一層層往后拋,并且能夠進行統(tǒng)一的異常捕獲,不像使用回調(diào)函數(shù)就直接炸了,還得一個個trycatch;
將異步事件的處理流程化,寫法更方便,但是:
- 無法取消
- 錯誤無法使用trycatch
- pending時,無法得知當前狀態(tài)
當需要把同步處理混合進去處理時,需要做一些不太友好的代碼遷移,(移進去才能保證某異步事件完成之后繼續(xù)執(zhí)行)
rxjs在使用方式上, 跟promise有點像,但在能力上,比他強大多了。不僅僅能夠以流的方式,對數(shù)據(jù)進行控制,還內(nèi)置許多工具方法,讓我們十分方便的處理各種數(shù)據(jù)層面的操作。
響應(yīng)式編程的大致思路
你可以用包括click 、hover事件在內(nèi)的任何東西創(chuàng)建 data stream。stream 廉價且常見,任何東西都可以是一個Stream(變量,用戶輸入、屬性、store、數(shù)據(jù)結(jié)構(gòu))
作為響應(yīng)式編程的核心,流的本質(zhì)是一個按照時間順序的進行中事件的序列集合