在RxJS中使用管道操作符ponyfill而不是.pipe是否会造成性能损失
我使用管道操作符ponyfill,它只是一个实用函数在RxJS中使用管道操作符ponyfill而不是.pipe是否会造成性能损失,rxjs,Rxjs,我使用管道操作符ponyfill,它只是一个实用函数applyPipe,这样applyPipe(x,a,b)就相当于b(a(x))或x |>a |>b(在本例中有两个函数,但实际上它可以是任意数量的函数)。在fp ts中,此函数称为pipe 在我的例子中,函数实现为 export const applyppe=( 来源:, 项目 ) => { 用于(项目施工){ 震源=el(震源); } 返回源; }; (您也可以使用.reduce)实现它) 此函数可用于组合可观察运算符,因此applype(
applyPipe
,这样applyPipe(x,a,b)
就相当于b(a(x))
或x |>a |>b
(在本例中有两个函数,但实际上它可以是任意数量的函数)。在fp ts
中,此函数称为pipe
在我的例子中,函数实现为
export const applyppe=(
来源:,
项目
) => {
用于(项目施工){
震源=el(震源);
}
返回源;
};
(您也可以使用.reduce
)实现它)
此函数可用于组合可观察运算符,因此
applype(计时器(500)、delay(500))
相当于timer(500).pipe(delay(500))
。问题是,使用这样的函数来代替.pipe
方法是否会导致性能下降?理论上,我认为这样做不会导致重大问题或性能下降(除了使用函数并复制可观察/对象引用以在函数中处理它而添加额外步骤之外)。您只需复制可观察的参考(而不是可观察的排放),因此出于性能原因,它不应该是一个大问题。
此外,ponyfill/Polyfill通常预期在性能方面等于或最差于实际实现。请记住,扩展操作符将仅复制对象的属性(而不是任何嵌套属性)
我想在ponyfill函数中留下一些注释,以便其他使用代码库的开发人员更容易理解