2017-02-17 69 views
0

稱爲這是我的代碼爲什麼所有的用戶都沒有RxJS

let x = Rx.Observable.create(obs => window.obs = obs); 
y = x.map(x=>x+2); 
x.subscribe(v=>console.log("x got ",v)); 
y.subscribe(v=>console.log("y got ",v)); 
obs.next(1); 

輸出是

y got 3 

我期待的輸出爲

x got 1 
y got 3 

缺少什麼我在這裏?謝謝

回答

2

您在第二次訂閱時覆蓋window.obs

如果你的用例需要你在程序調用的排放量,那麼你可以使用一個主題,而不是創建一個可觀察自己:

const subj = new Rx.Subject(); 
 
const sub1 = subj.subscribe(x => console.log('x got: ' + x)); 
 
const sub2 = subj.map(v => v * 2).subscribe(y => console.log('y got: ' + y)); 
 
subj.next(2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.1.0/Rx.js"></script>

+0

謝謝!我認爲這將只有一個obs,流將流經。什麼是正確的方式來實現我想要的? – hridayesh

+0

謝謝。有效! – hridayesh

相關問題