2015-04-06 58 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)); 
相关问题