Rxjs 里 Subject 和 BehaviorSubject 的区别
生活随笔
收集整理的這篇文章主要介紹了
Rxjs 里 Subject 和 BehaviorSubject 的区别
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
通過(guò)一個(gè)實(shí)際的例子來(lái)理解。
下面的代碼,創(chuàng)建了一個(gè)新的 subject,然后調(diào)用 next 方法,多播給其所有的監(jiān)聽者。
import { Subject } from 'rxjs';const jerry = new Subject();const subscription = jerry.subscribe((data) => console.log(data));console.log('ok'); jerry.next(111); jerry.next(222);subscription.unsubscribe(); console.log('?'); jerry.next(333);上文的例子,會(huì)打印 111,222
如果 Subject 在被訂閱之前就開始多播(即下圖第5行的 111),那么這些多播值,不會(huì)被開始多播之后的訂閱者收到。如下圖所示:訂閱者只會(huì)打印其訂閱 subject 之后收到的多播值 222:
使用 BehaviorSubject,就可以避免這個(gè)問(wèn)題:即使訂閱者訂閱該 subject 之前,后者就開始調(diào)用 next 進(jìn)行多播,這些多播值同樣能夠被訂閱者接收到:
更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的Rxjs 里 Subject 和 BehaviorSubject 的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SAP 电商云 Spartacus UI
- 下一篇: warframe内融核心有什么用(War