我记得很久以前我找到了一个建议,避免使用subscribe
方法中的任何代码,而改用管道。
// suppose bad
observable.subscribe(() => dosmg())
// suppose good
observable
.pipe(tap(() => dosmg()))
.subscribe()
推理与摇树有关。第二个选项提示更好地被优化。如今,我再也找不到该建议和相反的建议了。我遇到的许多学习资料都是在subscribe
方法中添加代码而没有说明。是否仍然建议使用管道代替subscribe
中的代码?
答案 0 :(得分:0)
我通常避免在订阅中添加逻辑。
函数式编码的美在于您可以结合,压缩,合并和扩展您的观测值。
如果您将逻辑放在订阅中,则只会失去可移植性,并且在以后阶段更难重构。这是典型的流切片组合方案
const stream1=observable
.pipe(tap(() => dosmg()))
const stream1WithLoggin=stream1.pipe(tap(message=>console.log(message))
const stream1WithHttp=stream1.pipe(mergeMap(message=>fetch(someurl))