在RxJS中,Observable有一些特殊的類,在消息通信中使用比較頻繁,下面主要介紹較常用的幾個類:
1.Subject類,Subject可以實現一個消息向多個訂閱者推送消息,直接看代碼實現吧
var subject = new Rx.Subject(); //實例化一個Subject對象
subject.next(1); //向接受者發送一個消息流
subject.subscribe({
next: (value) => console.log('observerA: ' + value) //接受者A訂閱消息,獲取消息流中的數據
});
subject.subscribe({
next: (value) => console.log('observerB: ' + value) //接受者B訂閱消息,獲取消息流中的數據
});
這樣兩路接受者都能拿到發送的數據流:
observerA:1
observerB:1
2.BehaviorSubject是Subject的一個衍生類,它將數據流中的最新值推送給接受者
var subject = new Rx.BehaviorSubject(0); //聲明一個BehaviorSubject對象
subject.next(1); //發送一個數據流
subject.next(2); //再發送一個數據流
subject.subscribe({
next: (v) => console.log('observerA: ' + v) //接受者A訂閱消息
});
subject.subscribe({
next: (v) => console.log('observerB: ' + v) //接受者B訂閱消息
});
subject.next(3); //再發送一個數據流
這樣,每次接受者只會接受最新最送的那個消息:
observerA:2
observerB:2
observerA:3
observerB:3
RxJS異步通信之Subject和BehaviorSubject
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.