【发布时间】:2016-12-28 16:50:56
【问题描述】:
长期潜伏者 - 第一次海报。 这是很多理论,所以请耐心等待。
我正在对可观察者、观察者和订阅者(rxjs 和 angular2)的概念进行心理建模,并希望确保我走在正确的轨道上。
我目前将 observables 理解为“可以观察和采取行动的事件流”。数组和请求可以被转换为 observable,以便观察者可以订阅它们,并且在触发事件时可以对该事件或 observable 中的数据采取行动。
我看到订阅者是一种观察者,它可以通过 3 个可能的处理程序来观察可观察对象:onNext、onComplete 和 onError。
我知道,只要订阅者可以访问要订阅的 observable,它们就可以在不同的类中。
如果这是准确的描述,请告诉我。
如果这是真的,我很好奇如何使数组可观察,如下所示: 当新项目添加到数组中时,我如何订阅该事件并对其采取行动?
我尝试通过创建一个数组、用鼠标事件填充它并尝试将此数组转换为 Observable 来解决这个问题。
这失败了,但我能够创建一个可观察的主题,使用 next() 推送新项目并使用订阅者订阅这些下一个事件(我不知道它是什么类型,所以我只是让它不输入因为我无法让编译器接受我输入的任何内容)。
我的问题是:
1) 我对 observable & observer/subscriber 的上述理解是否正确?
2) 我可以创建一个标准数组,使其可观察并监听“添加”或“修改”事件吗?
3) 我上面提到的订阅者的类型是什么?
this.mouseLocationSubscriber = this.mLocs$.subscribe(
X => this.handleNext(X),
err => this.handleSubscriberError(err),
() => console.log('subscriber recd complete')
);
请:
如果这个帖子发错地方了,请帮我把它放到正确的位置
如果这篇文章的格式不正确,请帮助我了解如何设置格式以便最好地找到答案
如果这篇文章是一些类似的丢失代码理论家的欺骗,请帮我找到回复
如果还有什么我应该被围攻的,我已经为你准备了一个干草叉:----E
【问题讨论】:
-
如果您需要更多上下文,此问题将引用项目/repo 的以下文件:github.com/nathank000/angular2_observer_test/blob/master/src/…
-
别忘了你可以使用
typeof关键字来调试类型兼容性问题!
标签: angular rxjs observable observers subscriber