1
使用RxJS 5
,這可能嗎?是否有可能從像event.stopPropagation用戶內發射停止Rx.Subject?
var source = new Rx.Subject();
source.map((data) => {console.log('map1'); return data;})
.subscribe((data) => {
console.log('subscribe1', data);
if(someCondition) {
source.stop(); //????????
}
});
source.map((data) => {console.log('map2'); return data;})
.subscribe((data) => {
console.log('subscribe2', data);
});
因此,當我打電話給source.next("Hello World");
時,只有第一個用戶會被通知。當然,這將在source.stop()
失敗,因爲stop
功能不存在,但它只是闡述我的問題。
存在的方式做到這一點,像event.stopPropagation
嗎?
現在我就在畫面右側。那麼,如果'filter'返回'false',下一個地圖將不會被調用? –
我知道你解釋,我沒有一個鏈條,但該用戶在他們訂購相同的順序運行,並不能使它鏈? RxJS應該提供一種方式來說:「嘿,不要再發射了」。或者,這是出於Observable模式? –
@CastroRoy如果'source'將項目發送給'subscribe1',然後'subscribe1'發送給'subscribe2',我會是一個鏈。這樣'subscribe1'可以控制它發送的值。它可能會修改它不發送它。另一方面,當你有'source'和兩個訂閱者時,他們彼此獨立地接收這個值。如果'filter()'返回false,則該值不會傳播給後續的操作員。 – martin