of
及range
,這兩個在RxJS
中,屬於負責創建資料來源。creation
。喔對了,fromEvent
也是其中之一喔!✍定義: of(data1, data2...dataN),就是依序將你的資料,用next()輸出,直到資料尾聲dataN,再呼叫complete()
底下這張圖稱之為彈珠圖(marble diagram),水平是一個時間軸線,幫助我們了解RxJS
運作的過程喔。補充資訊-Mike Huang認識彈珠圖 Marble Diagram
從這張圖來看,of
依序地將資料,循序的輸出。咱們趕緊來實作一下。
圖片來源 RxJS官網 - of介紹
import { of } from 'rxjs';
// observer
const observer = {
next: (value) => console.log('next', value),
error: (err) => console.log('error', err),
complete: () => console.log('complete'),
};
console.log("=== of : case1 ===")
of(1, 2, 3, 4, 5).subscribe(observer);
//=== of : case1 ===
//next 1
//next 2
//next 3
//next 4
//next 5
//complete
...
console.log('=== of : case2 放入不同的值 ===');
of('one', 2, { three: 333 }, 'Four', [5,5,5]).subscribe(observer);
// === of : case2 放入不同的值 ===
// next one
// next 2
// next {three: 333}
// next Four
// next [5,5,5]
// complete
圖片來源 RxJS官網 - range介紹
range(start, N): 給定**起始值(start)**及**長度N**,他就能自動地幫你累加數值,並依序地傳遞給你
。import { range } from 'rxjs';
// observer
const observer = {
next: (value) => console.log('next', value),
error: (err) => console.log('error', err),
complete: () => console.log('complete'),
};
console.log('=== range : case1 ===');
range(0,5).subscribe(observer) // 0,1,2,3,4
console.log('=== range : case2 不同的起始值 ===');
range(-4,5).subscribe(observer) // -4,-3,-2,-1,0
range
就是這麼的單純,直覺,說穿了就是像一個迴圈依樣,將你的初始值累加到你設定的條件式,結束。python的range
應該也不陌生# I'm Python case
for i in range(0,10):
print(i)
創建類(creation)
的RxJS Operator
of(data1, data2...dataN)
: 依序吐出 data1, data2...dataN
range(start, N)
: 依序給予start, start+1, start+2...start+N
RxJS
成為你順手的工具!!Day6
完成啦!早上寫文章成了一種習慣,喜歡這樣的節奏,開勳~灑花!!