【发布时间】:2016-04-13 04:32:18
【问题描述】:
我必须承认我正在使用 Angular2 迈出第一步,我在这里遇到了一个问题,我在理解上有些问题。我正在使用 angular2@2.0.0-beta.0,它依赖于 rxjs@5.0.0-beta.0。
我的意图是发出一个 HTTP 请求(对一个 REST 服务),并允许将响应发送给返回的 observable 的多个订阅者。如果我正确理解文档,我可以使用 publish() 函数来转换例如返回的 Observable http.post 函数到 ConnectableObservable,通过多次调用 ConnectableObservable.subcribe(...) 注册多个订阅者,然后调用 ConnectableObservable.connect() 来实际执行 HTTP 请求,例如像这样:
var obs: Observable<Response> = this.http.post(...);
var cobs: ConnectableObservable<Response> = obs.publish();
cobs.subscribe(sub1);
cobs.subscribe(sub2);
cobs.connect();
至少我的 IDE 接缝同意这一点并且没有显示任何警告。运行代码,我确实收到以下错误:
例外:评估“点击”时出错
原始异常:TypeError:obs.publish 不是函数
如果我在调试器中检查obs 对象,实际上只有极小的documented functions 子集可用。如果我查看implementation of the Observable 类,则确实只实现了一些记录的功能。大多数函数,其中publish函数,只是声明为函数签名,没有任何实际实现。
我是在做一些明显错误的事情,还是完全误解了如何使用 RxJS 可观察对象?
如果重要的话,我正在使用 gulp 构建,使用 npm 来解析和下载依赖项,并从我的 node_modules 目录中包含 rxjs/bundles/Rx.js。
【问题讨论】:
标签: angular observable rxjs