我正在学习Rxjs运算符和东西。我了解到地图运算符用于转换数据。但是使用管道运算符时,我无法使用Map运算符的方法。我正在使用Rxjs 5.5.6 我有一个
const source = Observable.of("david");
并订阅该Observable并将其转换为大写形式,就像
source.pipe(
map(x => x.toString().toUpperCase())
).subscribe(data => console.log(data));
但是当我在地图运算符中删除该toString()
时。我再也无法使用toUpperCase()
。我的意思是为什么我需要将数据转换为字符串然后执行toUpper()
。
谁能让我知道我在想什么。
答案 0 :(得分:0)
地图运算符是RxJs 5中可观察类的一种方法,因此您不需要管道
source.map(x => x.toString().toUpperCase());
之所以引入管道运算符是因为可以在RxJs 6中摇动运算符功能。
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>