RxJS異步通信之Subject和BehaviorSubject

在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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章