一、創建類操作符
1.創造的定義:是指這些操作符不依賴任何其他Observable對象,就可以憑空或者根據其他數據源創造出一個Observable對象。
2.創建類操作符就是數據的源頭,因此大部分創建類操作符都是靜態操作符
二、創建同步數據流
1.對於同步數據流,數據之間的時間間隔可以忽略不計。
2.create是最簡單的創建操作,內部就是直接調用創建Observable的構造函數,不需要導入任何其他模塊就可以使用。(靜態)
源碼如圖:
3.of,用於列舉數據,產生數據是同步的,數據產生后,Observable也完結,並且of屬於cold Observable,所以對於任何一個Observer訂閱者都會吐出同一組數據,所以可以反復使用。(靜態)
適用場景:想把已知不多的數據轉成Observable對象,進行處理。
ps:該方法在rxjs 4版本中名為just,所以如果要升級rxjs,則需要更名操作。
4.range,指定范圍,傳入參數指定開始值和長度,即可產生序列,第一個參數不一定要是整數,可以為1.5或者其他任何數字,每次只能遞增1。(靜態)
適用場景:產生一個很大連續數字序列。
5.generate,循環創建,定制性更強,第一個參數為值,初始值,第二個參數為函數,表示繼續的條件,第三個參數為函數,表示值的遞增,第三個參數為函數,表示結果,應該保持這三個函數都是純函數。(靜態)
適用場景:若在js中使用for循環實現,是用哪個rxjs實現就可以使用generate。
6.repeate,重復數據的數據流,可以重復上游Observable中的數據若干次,而且會在上游執行完后才會執行,若上游不執行complete,則repeate無法正常執行,該方法中參數表示重復的次數,若不傳參數或為負數,則無限次執行。(動態)
ps:該方法在rxjs 4版本中為靜態操作符,可傳入兩個參數,第一個為循環的對象,第二個是循環的次數。
7.empty,產生一個直接完結的Observable,沒有參數,不產生任何數據。
8.throw方法昌盛的Observable對象什么也不做,直接報錯,傳入的參數就是報錯的信息。
ps:注意throw是js中的關鍵字,導入時可使用別名。
9.never,真正的什么也不做,直到永遠。
