rxjs學習記錄 熱流 冷流

2021-10-05 11:21:01 字數 1359 閱讀 9283

let count = 1;

let obs = observable.create(observer => );

let sub1 = obs.subscribe(res => console.log('sub1', res)); // sub1 1

let sub2 = obs.subscribe(res => console.log('sub2', res)); // sub2 2

訂閱一次流的資料就重新產生一次

let count2 = 1;

let obs1 = observable.create(observer => )

}).pipe(map(t => ))

// .publish();

.pipe(publish());

let sub3 = obs1.subscribe(res => console.log('sub3', res)); // sub3 1

let sub4 = obs1.subscribe(res => console.log('sub4', res)); // sub4 1

obs1.connect();

let sub5 = obs1.subscribe(res => console.log('sub5', res)); // 沒有資料

connect時流產生一次,在connect之前的訂閱者都是可以接收到產生的資料,之後的卻不能

取消settimeout時可以sub5是可以接收到值

let count3 = 1;

let obs2 = observable.create(observer => , 1000);

// settimeout(() => , 2000);

})// .publish();

.pipe(publish())

.pipe(refcount())

let sub6 = obs2.subscribe(res => console.log('sub6', res)); // sub3 1

let sub7 = obs2.subscribe(res => console.log('sub7', res)); // sub4 1

/*sub6 1 ,sub6 2, sub6 3, sub7 3

*/

這個就比較奇怪了,感覺像是sub6去啟用了資料的產生

直觀的想settimeout為非同步console.log值應該是

sub6 1 ,sub6 2,sub7 2, sub6 3, sub7 3

但是卻為

sub6 1 ,sub6 2, sub6 3, sub7 3

很奇怪沒想明白

RxJS 學習之旅 實現簡易RxJS

本片文章主要通過實現rxjs一些簡單操作符,來進一步了解rxjs 本系列文章 你應該了解的函式實現與組合應用 初識rxjs與搭建倉庫 rxjs基礎概念與使用 操作符篇 簡易實現observable 本篇文章可以學到什麼?深入了解observablejs 基礎知識 類 原型 observable 即r...

rxjs學習筆記

zip 拉鍊式組合 合併多個非同步操作,當非同步資料全部獲取後,吐出陣列,並一一對應 concat 操作拼接,將多個非同步操作內容合併,當第乙個非同步資料subscribe後 會將結果一起傳遞給下乙個非同步操作,以此類推 merge 也是合併操作,單工作方式是先到先得,不區分位置,只要有資料就會推給...

Rxjs 學習入門

定義觀察者 var observer error function error complete function 同時與訂閱者進行繫結 observable.subscribe observer 1.1 生產基本資料 var observable rx.observable create func...