我正在学习Rxjs运算符之类的东西。我知道地图运算符是用来转换数据的。但是使用管道运算符,我无法使用Map运算符的方法。我正在使用Rxjs 5.5.6,我有一个可观察到的类似
const source = Observable.of("david");
订阅该可观察对象并将该数据转换为大写形式如下所示
source.pipe(
map(x => x.toString().toUpperCase())
).subscribe(data => console.log(data));
但当我删除映射操作符中的toString()
时。我不能再使用toUpperCase()
了,我的意思是为什么我需要将我的数据转换成字符串,然后执行toUpper()
。谁能让我知道我错过了什么。
发布于 2019-10-07 19:11:12
map操作符是RxJs5中observable类上的一个方法,因此您不需要管道
source.map(x => x.toString().toUpperCase());
引入管道运算符的原因是为了在RxJs6中对运算符函数进行树抖动。
const source = Rx.Observable.of('david');
source.map(x => x.toString().toUpperCase()).subscribe(data => console.log(data));
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.5.6/Rx.min.js"></script>
为什么你还在使用5.5.6?
const { of } = rxjs;
const { map } = rxjs.operators;
const source = of('david');
source.pipe(
map(x => x.toString().toUpperCase())
).subscribe(data => console.log(data));
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.5.3/rxjs.umd.min.js"></script>
https://stackoverflow.com/questions/58268108
复制相似问题