我正在尝试订阅从Subject创建的Observable,每当我订阅时没有错误处理程序,我就会得到错误this._subscribe is not a function。我发现this问题描述了类似的错误;但答案似乎不适合我的情况。下面是我的代码:
const subject = new Rx.Subject();
subject
.withLatestFrom(otherObservable)
.subscribe(
values => {
// some logic
}
);我也试过了:
const subject = new Rx.Subject();
subject
.withLatestFrom(otherObservable)
.subscribeOnNext(
values => {
// some logic
}
); 我得到了同样的错误。下面是我仅尝试使用subscribe时的堆栈跟踪
Observable.Rx.Observable.observableProto.subscribe.observableProto.forEach (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2034:19)
WithLatestFromObservable.subscribeCore (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:4084:33)
WithLatestFromObservable.tryCatcher (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:63:31)
setDisposable [as action] (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2082:46)
ScheduledItem.invokeCore (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:896:33)
ScheduledItem.invoke (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:884:40)
runTrampoline (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:1125:37)
tryCatcher (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:63:31)
CurrentThreadScheduler.schedule (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:1141:45)
WithLatestFromObservable.Rx.ObservableBase.ObservableBase._subscribe (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2095:32)
WithLatestFromObservable.Rx.Observable.observableProto.subscribe.observableProto.forEach (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2034:19) 这是我尝试subscribeOnNext时的堆栈跟踪
Observable.Rx.Observable.observableProto.subscribe.observableProto.forEach (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2034:19)
WithLatestFromObservable.subscribeCore (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:4084:33)
WithLatestFromObservable.tryCatcher (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:63:31)
setDisposable [as action] (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2082:46)
ScheduledItem.invokeCore (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:896:33)
ScheduledItem.invoke (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:884:40)
runTrampoline (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:1125:37)
tryCatcher (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:63:31)
CurrentThreadScheduler.schedule (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:1141:45)
WithLatestFromObservable.Rx.ObservableBase.ObservableBase._subscribe (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2095:32)
WithLatestFromObservable.Rx.Observable.observableProto.subscribeOnNext (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2046:19)如果我向subscribe传递一个像() => null这样的小错误处理程序,我就得不到错误。有什么想法吗?
发布于 2016-06-30 02:42:18
多亏了user3743222 ,我想通了。事实证明(实际上在逻辑上),你不能订阅一个普通的可观察对象。它需要以这样一种方式构建,即它有值得观察的价值。我在单元测试中将otherObservable的初始化从new Rx.Observable()更改为Rx.Observable.just(1),现在可以订阅它了。不过,我有点困惑,当我同时传递onNext和onError处理程序时,它为什么没有抛出相同的错误。但我还是要买下它。
https://stackoverflow.com/questions/38103985
复制相似问题