[英]How to avoid executing a promise inside an observable twice when subscribed to a BehaviourSubject?
[英]How to unwrap an observable inside behavioursubject .next() in rx Javascript?
這是創建和使用行為主體的方式。
// component/class 1
item = new BehaviourSubject(null)
item$
constructor() {
this.item$ = this.item.asObservable()
/// and to get value from item$ we do
this.item$.subscribe(v => console.log(v));
}
現在要將另一個值傳遞給行為主體或觸發更改,我們執行以下操作:
// component/class 2
someObservable$.subscribe(value => {
this.item.next(value)
}
)
所以我的問題是,有沒有辦法在不訂閱someObservable$
的情況下傳遞上述值?
像這樣的東西:
這樣 observable 在行為主體內展開自身。
this.item.next(someObservable$)
// when I does this the item$ observable returns an observable wrapped inside another observable and not a real value.
有時答案只是“不”。 可觀察對象不包含值。 因此,您無法讀取 observable 的值並將其用於 function 調用中,例如this.item.next(observable$)
。 你必須訂閱一個觀察者。
當然,您可以改用行為主題。 行為主體包含當前值。
this.item.next(behaviorSubject$.value)
是可能的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.