mep 類似於 array.prototype.map()switchmap switchmap 會停止發出先前發出的內部 observable 並開始發出新的內部 observable 的值。(可以停止上一次發出的ajax)
mergemap 將每個值對映到observable,必須返回乙個observable
reduce 只返回最後的值
// res: 12, 15
from([2, 3]).pipe(
scan((acc, item) => acc += item, 10))
.subscribe(v => console.log(v))
// res: 15
from([2, 3]).pipe(
reduce((acc, item) => acc += item, 10))
.subscribe(v => console.log(v))
filter 返回你想要的資料partition 返回兩個 observables [0] 符合斷言, [1] 不符合斷言
from([2, 3, 4]).pipe(
filter(item => item <= 3))
.subscribe(v => console.log(v))
將當前值和前乙個值作為陣列放在一起,然後將其發出
of(1, 2, 3)
.pipe(
pairwise()).subscribe(v => console.log(v))
[1,2]
[2,3]
都可以接收乙個函式作為引數
from([1,2]).pipe(max()).subscribe(l) // 2
from([1,2]).pipe(min()).subscribe(l) // 1
from([1,2]).pipe(count()).subscribe(l) // 2
過濾掉重複的項
from([1, 2, 2, 3, 2])
.pipe(distinct())
.subscribe(l); // 1,2,3
只發出第n個值, 然後完成 ,從0開始
from([1, 2])
.pipe(elementat(0, "default value"))
.subscribe(l);
忽略源所傳送的所有項,只傳遞 complete 或 error
skip 跳過源發出的前n個值skiplast 跳過源最後發出的的n個值
skipwhile 跳過lambda返回true的值
take 接收源 最初的n個值takelast 接收源最後n個值
takeuntil notifier發出值, 源斷流
takewhile lambda返回true,才發出源的值
先發出最新的值, 在忽略
先忽略, 在發出最新的值
interval(500)
.pipe(audittime(1000))
.subscribe(l); // 1s後發出 2, 1被忽略
延時傳送源發出的值, 如果期間源發出了新值的話,返回的值為最新的值,上乙個會被丟棄掉(避免高消費事件時使用)
在週期時間間隔內發出源最新值。
類似 array.prototype.find()
把 observable 轉化為 promise
click = async e =>
buffer系列,將過去的值作為陣列收集,在事件觸發時發出收集好的值
const send$= fromevent(document, 'click');
const interval = interval(1000);
const buffered = interval.pipe(buffer(send$));
buffered.subscribe(l);
如果源observable完成而沒有發出任何next值,則發出給定值 ,否則映象源observable
const = require("rxjs");
const = require("rxjs/operators");
from([1, 2, 2, 3, 2])
.pipe(
mergemap(el => (el > 10 ? of(el) : empty())),
defaultifempty("not data"),
) .subscribe(l); // not data
延遲來自源observable的專案的發射
from([1, 2])
.pipe(endwith("源觀察完成後,附加乙個發射,然後完成。"))
.subscribe(l); // 1, 2, "源觀察完成後,附加乙個發射,然後完成。"
pluck(properties: ...string); 取乙個物件的屬性類似 obj.***.***
toarray(); 把流發出的值塞在array後,返回array
rxjs過濾操作符
一 take操作符 只發出源 observable 最初發出的的n個值 n count 如果源發出值的數量小於 count 的話,那麼它的所有值都將發出。然後它便完成,無論源 observable 是否完成。import from angular core import from rxjs obse...
Rxjs中的操作符
去除重複資料,和所有的資料進行對比。示例一 rx.observable.of 1,2,3,4,1 distinct subscribe x console.log x 輸出為 1,2,3,4 示例二 當然,也可以為distinct傳遞方法,rx.observable.of distinct p p....
RXJS部分操作符解釋
rxjs部分操作符解釋 長寬 const length document.getelementbyid length const width document.getelementbyid width const area document.getelementbyid area 所有的rx資料流後...