RxJS 6中静态merge函数的位置及正确导入方法咨询
正确导入RxJS 6静态
merge函数的方法 嘿,我懂你这会儿的困惑——RxJS 6在导入规则上做了挺大调整,好多静态操作符的位置都变了,很容易踩坑。
你之前试的两种导入路径要么是旧版本(RxJS 5.x)的写法,要么是针对管道操作符的,在RxJS 6里,静态的merge函数得直接从rxjs核心模块导入,这才是正确的姿势。
正确导入代码
import { merge } from 'rxjs';
之后你就能正常合并多个Observable了,示例如下:
import { merge, Observable } from 'rxjs'; // 假设已定义好需要合并的Observable const obs1$ = new Observable(sub => { sub.next('来自obs1的内容'); }); const obs2$ = new Observable(sub => { sub.next('来自obs2的内容'); }); const obs3$ = new Observable(sub => { sub.next('来自obs3的内容'); }); // 合并操作正常生效 const merged$ = merge(obs1$, obs2$, obs3$); merged$.subscribe(val => console.log(val));
为啥之前的导入不对?
import { merge } from 'rxjs/observable/merge':这是RxJS 5.x的导入方式,RxJS 6把所有静态创建类操作符统一迁移到了rxjs主模块下,旧路径自然失效。import { merge } from 'rxjs/operators':这里的merge是管道操作符,作用是在Observable的管道链中合并其他Observable,用法是source$.pipe(merge(other$)),和你要的「静态合并多个Observable」根本不是同一个东西。
这样调整后应该就能解决你的问题啦!
内容的提问来源于stack exchange,提问作者bingles
相关产品推荐
相关产品推荐

