什么是管道和攻丝方法在角度教程?

我正在学习 https://angular.io中的教程,但是在查找文档方面遇到了麻烦; 特别是针对方法 pipetap的文档。我在 https://angular.iohttp://reactivex.io/rxjs/上找不到任何东西。

我的理解是 pipetap都是从 RxJS 导入的 Observable的方法,对吗?他们能做什么?

这些方法是角度的一部分吗? 这两个方法是做什么的?

137124 次浏览

你是对的,文档缺乏这些方法。然而,当我深入研究 rxjs 存储库时,我发现了关于 踢踏舞烟斗操作符的好评(这里太长了,无法粘贴) :

  /**
* Used to stitch together functional operators into a chain.
* @method pipe
* @return {Observable} the Observable result of all of the operators having
* been called in the order they were passed in.
*
* @example
*
* import { map, filter, scan } from 'rxjs/operators';
*
* Rx.Observable.interval(1000)
*   .pipe(
*     filter(x => x % 2 === 0),
*     map(x => x + x),
*     scan((acc, x) => acc + x)
*   )
*   .subscribe(x => console.log(x))
*/

简而言之:

: 用于将函数运算符缝合成一个链。之前我们可以只做 observable.filter().map().scan(),但是因为每个 RxJS 操作符都是一个独立的函数而不是一个可观察的方法,所以我们需要 pipe()来创建这些操作符的链(参见上面的例子)。

点击 : 可以对观测数据执行副作用,但是 不会改变流以任何方式。以前叫 do()。你可以把它想象成一个随时间变化的数组,那么 tap()就等价于 Array.forEach()