Subject.subscribe
方法输出以下错误:
TypeError: Cannot read property '_subscribe' of undefined
at BidirectionalSubject._subscribe (Rx.js:10239)
at BidirectionalSubject._subscribe (Rx.js:10239)
at BidirectionalSubject.Observable.subscribe (Rx.js:9924)
at AppComponent.doIt (app.component.ts:32)
at ChangeDetector_AppComponent_0.handleEventInternal (eval at ChangeDetectorJITGenerator.generate (angular2.dev.js:1), <anonymous>:29:29)
at ChangeDetector_AppComponent_0.AbstractChangeDetector.handleEvent (angular2.dev.js:8788)
at AppView.dispatchEvent (angular2.dev.js:9396)
at AppView.dispatchRenderEvent (angular2.dev.js:9391)
at DefaultRenderView.dispatchRenderEvent (angular2.dev.js:7819)
at eventDispatcher (angular2.dev.js:9781)
这是我面临的更大问题的一部分。 在我的实际代码中,subscribe
方法没有抛出但只是没有向observer
添加subject
,因此在所有subject.next
调用中都没有人接收发出的数据。
我认为问题是相关的。在我的实际代码中,我使用的是rxjs的5.0.0-beta.12
版本。然而,在plukr中,rx
依赖似乎来自角度本身。
答案 0 :(得分:3)
请注意使用Subject.create()
。
这与new Subject()
不同,绝大多数情况下您只想使用new Subject()
代替Subject.create()
。使用Subject.create()
,您创建的AnonymousSubject
实例永远不会自我订阅,因此flatMap()
运算符在尝试将AnonymousSubject
订阅到另一个{{1}时会引发错误}}
请参阅我对类似问题的回答:Subjects created with Subject.create can't unsubscribe。
我刚刚将AnonymousSubject
更改为Subject.create()
并且它可能正常运作。
查看更新后的演示:https://plnkr.co/edit/6M1lPLZA16vwQsVAjNzc?p=preview
虽然,我不知道该演示应该做什么,但我无法判断它是否正常工作。