rx《二》 流的合併

2021-08-20 12:43:29 字數 3189 閱讀 9992

type="text"

id="length">

div>//1222333

type="text"

id="width">

div>//2244444

id="area">

div>

const length=document.getelementbyid('length');

const width=document.getelementbyid('width');

const area=document.getelementbyid('area');

const width$=rx.observable.fromevent(width,'keyup').pluck('target','value');

const length$=rx.observable.fromevent(length,'keyup').pluck('target','value');

const area$=rx.observable.merge(width$,length$);

area$.subscribe(val=>)

script>

輸入1,2,12,122.。。。

2,24,244,2444.。。

可以看出length的值並沒有和width的值混合到一起,所以可以稱為對資料來源的合併

也是流的合併

必須在第乙個流結束之後 才會對第二個流進行合併

const length=document.getelementbyid('length');

const width=document.getelementbyid('width');

const area=document.getelementbyid('area');

const width$=rx.observable.fromevent(width,'keyup').pluck('target','value');

const length$=rx.observable.fromevent(length,'keyup').pluck('target','value');

const first$=rx.observable.from([1,2,3,4])

const area$=rx.observable.concat(first$,width$);

area$.subscribe(val=>)12

34'1''12'

。。。。

startwith(x) 相當於在陣列之前新增乙個值

const first$=rx.observable.from([1,2,3,4]).startwith(0);//用於賦予初值01

234

combinelatest

const length=document.getelementbyid('length');

const width=document.getelementbyid('width');

const area=document.getelementbyid('area');

const width$=rx.observable.fromevent(width,'keyup').pluck('target','value');

const length$=rx.observable.fromevent(length,'keyup').pluck('target','value');

const area$=rx.observable.combinelatest(length$,width$);

area$.subscribe(val=>)

['1','2']

['1','22']

combinelatest

const length=document.getelementbyid('length');

const width=document.getelementbyid('width');

const width$=rx.observable.fromevent(width,'keyup').pluck('target','value');

const length$=rx.observable.fromevent(length,'keyup').pluck('target','value');

const area$=rx.observable.combinelatest(length$,width$,

(l,w)=>l*w

);area$.subscribe(val=>)

zip和combinelatest的區別 zip中的值需要成對出現

const area$=rx.observable.zip(length$,width$,

(l,w)=>l*w

);area$.subscribe(val=>)

withlatestform;

length$.withlatestform(width$);

第乙個為主,當都有初始值的時候,並且length$有變化時開始合併

過濾操作符 debounce debouncetime

debounce:只有當另乙個observable發射值時,才取源obervable的最新資料進行發射,其他資料取消發射。

debouncetime:一段時間內,只取最新資料進行發射,其他資料取消發射。

.debouncetime(***)

distinct 去除重複的值

rx.observable

.of('a', 'b', 'c', 'a', 'b')

.distinct( )

.subscribe( x => console.log( x ))

abc

distinctuntilchanged去除連續重複的值

// 去除連續重複的元素,輸出a,b,a,b,a

rx.observable

.of('a', 'b', 'b', 'a', 'b', 'a', 'a')

.distinctuntilchanged( )

.subscribe( x => console.log( x ))

為什麼我更傾向用二流大學的畢業生

客觀講,能進入一流大學的學生大多數都是聰明人,而多數聰明人有下列兩點 1 聰明人常犯得毛病是自大而看不起其他人 2 聰明人慾望比一般人更加強烈,在團隊中常常成為麻煩的 和不安定因素之一 對我們公司而言,相對還比較小 80人規模 正處於可以上規模的過度階段,即使能招來一流大學的學生也很難留住 而任用一...

變幻莫測的python 二 流程控制

true 表示非空的量 false 表示0,none,空的量等 print o and a a 1 and a a 1 and 1.0 1.0 1 and 0 0 a and 0 0 1 and a and 1.0 1.0 1 and 1.0 and a and 0 0 1.0 and a a a ...

探索流程的奧秘之二 流程的步驟是什麼東東

自從工作流技術誕生以來,人們往往很習慣地把資料處理軟體與工作流軟體如楚河漢界般看成是兩個截然不同的領域,當有哪位新人瞪著兩隻水汪汪的大眼睛虔誠的問工作流專家,什麼是步驟 時,專家多半會脫口而出,步驟就是流程的節點,業務流轉到節點,對應的操作人就會收到通知,並要求處理節點而已。讓我們看乙個簡單的例子 ...