Angular 7中管道和map之间的确切区别是什么?

9

我搜索了很多关于这个问题的资料,但是我仍然无法理解在angular 7中pipemap的区别。在angular 7中的Service.ts文件中是否必须使用pipe呢?

谢谢。


不,您可以继续使用而不使用管道。Map 只是将您的 HTTP Observable 强制转换为所需的输出类型。 - Pardeep Jain
我认为你的意思是 RxJS 而不是 Angular - John Velasquez
感谢回复,但我想知道使用哪种方式更好。HTTP“可观察对象”在使用管道(pipe)和不使用管道(如map)之间的主要区别是什么? - manu
3个回答

12
使用rxjs 5.5及以上版本,如果你想在observable上使用任何操作符,只需将它们进行管道处理。所以这里的map只是pipe中的其中一个操作符。
例如:新版本5.5+
const example = source.pipe(map(val => val + 10), first());

对于早期版本的rxjs,没有pipe关键字,多个操作符使用.符号进行组合。
例如旧版本
const example = source.map(val => val + 10).first();

7

map(), filter(), concat(), 和 flatMap() 这些是 RxJS 库提供的操作符。 你可以使用管道将这些操作符链接起来。管道可以让你将多个函数组合成一个单一的函数,如下所示:

import { filter, map } from 'rxjs/operators';

const squareOddVals = pipe(
filter((n: number) => n % 2 !== 0),
map(n => n * n)
);

5

简而言之,在RxJS中,pipe用于拦截结果并使用RxJS操作符进行修改,以便在订阅时获得与pipe示例中设置的逻辑操作符等效的最终结果,例如maptap等。

有关Angular实践指南,请在此处查看 https://angular.io/guide/rx-library

您可以在此处查看操作符列表 https://www.learnrxjs.io/operators/


谢谢您的回复,如果您有的话,能否给我一些链接? - manu
我刚刚在我的回答中添加了链接。 - John Velasquez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接