2つのAngular(1.6.4)コンポーネントとサービスがあります。サービスは私が4コンソールログを見ることを期待するこれらの行Observableが最新のサブスクライバにメッセージを送信するのはなぜですか
//Component 1
service.observable.subscribe (v) => console.log('consumer A1: ' + v)
service.observable2.subscribe (v) => console.log('consumer A2: ' + v)
//Component 2
service.observable.subscribe (v) => console.log('consumer B1: ' + v)
service.observable2.subscribe (v) => console.log('consumer B2: ' + v)
を持っていますが、代わりに、私は(A1を3を参照してください。この(CoffeeScriptの)のような2つの観測...私のコントローラで
// In service constructor
@observable = Rx.Observable.create (source) =>
source.next(123)
@observable2 = Rx.Observable.create (source) =>
@observer = source
$timeout =>
@observer.next(345)
, 1000
を作成し、 B1、B2)。なぜ私は外部から呼び出したときに最後のサブスクリプションだけが呼び出されますが、内部にあるときは呼び出されますか? 2つ目の例を両方とも呼び出す方法はありますか(好ましくはObservableとSubjectではなく)?
私がSubjectを使用すると、すべてが期待通りに機能しますが、なぜ私は観察可能であると期待しているように動作しないのか不思議です。
私が見逃していた部分は、誰かが購読するたびに新しいオブザーバーが作成されるということです。それが私が欠けていた部分でした。 – Jackie