首页 > 解决方案 > 如何在 RxJs 5.5.6 中使用管道运算符

问题描述

我正在学习 Rxjs 运算符之类的东西。我了解地图运算符用于转换数据。但是使用管道运算符我无法使用 Map 运算符的方法。我正在使用 Rxjs 5.5.6 我有一个像 Observable

const source = Observable.of("david");

订阅该 Observable 并将该数据转换为大写的写法如下

    source.pipe(
      map(x => x.toString().toUpperCase())
    ).subscribe(data => console.log(data));

toString()但是当我在地图运算符中删除它时。我不能再使用了。我的toUpperCase()意思是为什么我需要将我的数据转换为字符串然后执行toUpper(). 谁能让我知道我错过了什么。

标签: rxjs

解决方案


map 运算符是 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>


推荐阅读