没用过 rxjs,但这俩函数名称还是挺不言自明的……
pipe 当然是 stdout,要是再多一个参数那自然就是 stderr 了呗
tap 我觉得没法解释,一般是 xxx.tap(x => ...),所以这里的 tap 看起来像是一个 currying 之后的函数,把 xxx 变成唯一的参数了。
比如
const foo = bar(...);
console.log(foo);
foo.baz();
用 tap 的形式就相当于
bar(...).tap((foo) => {
console.log(foo);
foo.baz();
});
所谓 currying 就是 fn(a, b) <=> fn(a)(b),这两者完全等价
【 在 feed (鳄鱼) 的大作中提到: 】
: 标 题: rxjs里的pipe和tap函数是干嘛的?
: 发信站: 水木社区 (Fri Jan 25 17:31:57 2019), 站内
:
: rt
: 比如:
: return this.http.post<HistoryItem[]>(url, params).pipe(
: tap(HistoryItem => this.log(`get history record list`)),
: catchError(this.handleError('getHistorylist', []))
: );
: 太复杂了,看不懂啊。
: 大家都觉得好学吗?
: --
:
: ※ 来源:·水木社区
http://newsmth.net·[FROM: 114.255.160.*]
--
修改:eGust FROM 125.236.132.*
FROM 125.236.132.*