0
私は次のような観察が可能で、モデルの変更を検証します。observableが購読されない理由
コードスニペットは、以下のようになります。
const oSaveCancelStateOb = this.determineSaveCancelStateOb(oTableItemChanges, oSaveCancelStateModelOb);
oSaveCancelStateOb.subscribe(function (oOb) {
console.log("Subscribe 1");
});
oDelBtnOb
.switchMapTo(oSaveCancelStateOb)
.subscribe(function (oOb) {
console.log("Subscribe 2");
});
determineSaveCancelStateOb
の実装は以下のようになります。
determineSaveCancelStateOb: function (oInspectionServiceOb, oSaveCancelStateModelOb) {
return oInspectionServiceOb
.map(function (bState) {
return bState ? {bSave: true, bCancel: true} : {bSave: false, bCancel: false};
})
.switchMap(function (oState) {
return oSaveCancelStateModelOb
.map(function (oModel) {
return {oModel: oModel, oState: oState};
})
});
},
代は寒い観測可能で、モデルに変更された場合oSaveCancelStateOb
は、検証。
第2の観察可能なoDelBtnOb
は注目に値する、それはマウスボタンのクリックで聞きます。
私はボタンをクリックしたときに私の期待は、それはコンソール上で私を見る必要がありますされています
Subscribe 1
Subscribe 2
しかし、私が持っているだけ
Subscribe 2
なぜ最初に観察取得していませんサブスクライブ?
更新
次のコードスニペットに見てみましょう:私は、ドキュメントをクリックすると
//Create an observable that emits a value every second
const sample1$ = Rx.Observable.of(true);
sample1$.subscribe(val => console.log(val))
//Create an observable that emits every time document is clicked
const sample2$ = Rx.Observable.fromEvent(document, 'click');
sample2$.switchMapTo(sample1$).subscribe(val => console.log(val))
、私は二回true
意志の出力を期待しています。
同じように動作しています。 –
あなたが言及した2番目の点は、最初の購読は文書をクリックすると再び実行されませんか? –
@zero_codingが正しい場合、最初のサブスクリプションはドキュメント –