gpt4 book ai didi

angular - 如何保持 RxJ 干燥

转载 作者:行者123 更新时间:2023-12-02 10:52:34 27 4
gpt4 key购买 nike

DRY(不要重复自己)

假设我在我的应用程序中经常使用此代码:

observable$.pipe(
tap(value => console.log(value)),
map(value => value * 5),
... more repeated stuff
)

假设值 5 在代码的某些部分不同,但其他所有内容都相同。我可以以某种方式对其进行功能化/做一些事情以使其可重复使用以避免复制粘贴问题吗?

我可以做这样的事情吗?

observable$.pipe(
getReusedOperators(7), // this would pipe to all above operators using 7 instead of 5
tap((value) => console.log('im not reused and my value is', value)),
....
)

这里最好的方法是什么?抱歉,我的问题不太好,但希望您能明白。

最佳答案

使用可管道运算符要记住的是,它们只是接受可观察值并返回可观察值的函数,因此您可以轻松创建可重用的运算符组合,如下所示:

function getReusedOperators(factor) {
return source => source.pipe(
tap(value => console.log(value)),
map(value => value * factor),
);
}

对于可重用组合未参数化的情况,您可以使用静态 pipe 函数进行组合。看我的Combining Operators文章提供了一些示例。

关于angular - 如何保持 RxJ 干燥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51795469/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com