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
功能。看我的组合运算符 https://blog.angularindepth.com/rxjs-combining-operators-397bad0628d0文章中的一些例子。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)