2015-04-06 62 views
2

我正在使用Rx.js將我的結果從AJAX調用流式傳輸到多個單元。Rx.js,訂閱被調用undefined

但是,當觀察者訂閱MapObserver時,遇到了多個問題。當第一個用戶將總是得到正確的數據,但其餘的將會變得不確定。

this.observable  = new Rx.Subject(); 

observeMap = this.observable 
    .map(createMarker.bind(this)); 

var s1 = observeMap.subscribe(console.log.bind(console, 1)); 

var s2 = observeMap.subscribe(console.log.bind(console, 2)); 

Console Logs 請指點,謝謝!

+0

聽起來像一個可能的錯誤('共享'不應該是必要的,以防止這個問題)。你能舉一個你稱之爲「this.observable.onNext」的例子嗎?你使用的是哪個版本的rxjs?同樣顯示'createMarker()' – Brandon 2015-04-07 06:06:12

+0

我按照預期在最新版本(2.5.1)和[**它工作**](https://jsfiddle.net/q3hqdtro/)中測試過。你可能會使用一些老版本的rxjs。正如@brandon寫道:'共享'不應該是必要的,以獲得你想要的。 – 2015-04-08 07:38:44

回答

2

我剛剛爲我的問題找到了一個解決方案,爲了在少數用戶之間共享可見性,您可以使用share方法。

this.observable  = new Rx.Subject(); 

observeMap = this.observable 
    .map(createMarker.bind(this)) 
    .share(); 

var s1 = observeMap.subscribe(console.log.bind(console, 1)); 

var s2 = observeMap.subscribe(console.log.bind(console, 2)); 
相關問題