javascript - RxJS 5.5+ 中带有管道的多播运算符
问题描述
如何使用multicast()
RxJS 5.5 中新推荐的方法来使用操作符,即使用pipe()
而不是链接操作符?当我尝试connect()
像以前一样使用时出现 TypeScript 错误:
const even$ = new Subject();
const connectedSub = interval(500)
.pipe(
filter(count => count % 2 === 0),
take(5),
multicast(even$)
)
.connect();
even$.subscribe(value => console.log(value));
此代码有效,但会产生一个 TypeScript 错误,报告Property 'connect' does not exist on type 'Observable<{}>'.
我是否按照我在 RxJS 5.5+ 中的方式使用可连接的 observables?
解决方案
当前的 - v5.5.10 和 v6.1.0 -pipe
类型不知道Observable
子类,所以我使用类型断言,如下所示:
const connectedObs = interval(500).pipe(
filter(count => count % 2 === 0),
take(5),
multicast(even$)
) as ConnectableObservable<number>;
const connectedSub = connectedObs.connect();
推荐阅读
- python - 返回类型必须是字符串、字典、元组、响应实例或 WSGI 可调用,但它是 TypeError
- java - 在 WSO2 身份服务器中创建工作流时出错 (wso2is-km-5.9.0)
- java - 从一个 ActionEvent 多次调用方法
- jestjs - 如何在 JEST 测试中保留所有测试套件访问的单个变量(访问令牌)?
- java - 如何使用与 Coldfusion 加密相同的 Android AES 加密
- android - 如何使用 Flutter 根据从数据库中获取的值自动更新文本?
- spring - 如何在 JPQL 中使用别名?
- python - 从html python中提取表格内容
- javascript - 如何在 JavaScript 中清除文本输入并重新聚焦
- python - Django 错误 - 模型被用作中间模型......没有“组”或“权限”的外键