Rxjs 初步感知 不算入門的入門

2021-09-30 21:08:20 字數 2586 閱讀 7151

rxjs教程指路

中文手冊

個人理解:非同步程式設計,類promise,功能比promise更強大

function

getcallbackdata

(callback)

,1000);

}getcallbackdata

((data)

=>

)

function

getpromisedata()

,2000)}

)}getpromisedata()

.then

((data)

=>

)

function

getrxjsdata()

,3000)}

)}getrxjsdata()

.subscribe

((data)

=>

)

從上面可以看出,rxjs與promise的語法非常相似,rsxj使用的物件是observable,獲取資料使用的關鍵字是subscribe(訂閱)

什麼叫優勢,你能做的我能做,做的好不好暫且不談,但是我能做的你做不了,這就是優勢了

promise建立之後,動作是無法撤回的。observable不一樣,動作可以通過unsbscribe()方法中途撤回,而且observable在內部做了智慧型的處理。舉例如下

function

getrxjsdata()

,3000)}

)}const res =

getrxjsdata()

.subscribe

((data)

=>

)settimeout((

)=>

,1000

)// 不會列印輸出結果

如果我們想讓非同步裡面的方法多次執行,比如下面這段**

function

getintervalpromisedata()

,2000)}

)}getintervalpromisedata()

.then

((data)

=>

)

結果promsie中的資料只能列印一次,而observable不一樣,它可以不斷地觸發下乙個值,就像next()這個方法的名字所暗示的那樣。

function

getintervalrxjsdata()

,1000)}

)}getintervalrxjsdata()

.subscribe

((data)

=>

)//列印結果

// intervaldata-rxjs1

// intervaldata-rxjs2

// intervaldata-rxjs3

// ······

angular中使用rxjs的相關工具函式需要引入相關的模組

import

from

'rxjs/operators'

function

getintervalrxjsnum()

,1000)}

)}getintervalrxjsnum()

.pipe

(filter

((value: number)

=>))

.subscribe

((data)

=>

)// 列印結果

// 2

// 4

// 6

// ···

filter的作用是過濾訂閱的資料,上例中,只獲取偶數

getintervalrxjsnum()

.pipe

(map

((value: number)

=>))

.subscribe

((data)

=>

)// 列印結果

// 1

// 4

// 9

// ···

與js中陣列方法map類似,可以對資料進行修改

getintervalrxjsnum()

.pipe

(filter

((value: number)

=>),

map(

(value: number)

=>))

.subscribe

((data)

=>

)// 列印結果

// 4

// 16

// 36

// ···

工具函式都是在pipe管道中使用的,有點類似angular中的模板語法

時間複雜度的計算(入門版)

定義 在電腦科學中,時間複雜性,又稱時間複雜度,演算法的時間複雜度是乙個函式,它定性描述該演算法的執行時間。這是乙個代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,亦即考察輸入值大小趨近無窮時的情況。我們都...

Golang入門學習 Slice的初步使用

go 語言切片是對陣列的抽象。go 陣列的長度不可改變,在特定場景中這樣的集合就不太適用,go中提供了一種靈活,功能強悍的內建型別切片 動態陣列 與陣列相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大 切片是一種方便 靈活且強大的包裝器。切片本身沒有任何資料。它們只是對現有陣列的...

Golang語言入門 陣列(Array)的初步使用

1.1 什麼是陣列 go 語言提供了陣列型別的資料結構。陣列是具有相同唯一型別的一組已編號且長度固定的資料項序列,這種型別可以是任意的原始型別例如整形 字串或者自定義型別。陣列元素可以通過索引 位置 來讀取 或者修改 索引從0開始,第乙個元素索引為 0,第二個索引為 1,以此類推。陣列的下標取值範圍...