BehaviorSubject
インスタンス ( )から共有マッピングをサブスクライブすると、t
最初のサブスクリプションのみが実行されます。
元のBehaviorSubject
( obj
) が 2 番目の値を発行すると、最新の値のみが出力され、両方のサブスクリプションが実行されます。
私のコードをチェックしましょう
const obj = new Rx.BehaviorSubject(1)
obj.subscribe(console.log)
const t = obj.map(u => {
console.log("mapped")
return u * 10
}).share()
t.subscribe(x => console.log("subscribe 1 " + x))
t.subscribe(x => console.log("subscribe 2 " + x))
//with the following line un-commented, both subscriptions print out new value
//obj.next(2)
私の期待される結果は
1
mapped
subscribe 1 10
subscribe 2 10
しかし、実際の結果は
1
mapped
subscribe 1 10
素朴な質問で申し訳ありません。これを私に説明できる人はいますか?
どうもありがとう