我记得曾经有一次,我发现了一个建议,即避免使用 subscribe
方法中的任何代码,而改用管道。
// suppose bad
observable.subscribe(() => dosmg())
// suppose good
observable
.pipe(tap(() => dosmg()))
.subscribe()
原因与树摇动有关。第二个选项提示可以更好地优化。现在我再也找不到这个推荐以及相反的推荐了。而且我遇到的很多学习资料都是在subscribe
方法中添加代码,而没有任何解释。是否仍然建议使用管道来代替 subscribe
中的代码?
最佳答案
我通常避免将逻辑放入订阅中。
函数式编码的美妙之处在于您可以组合、压缩、合并和扩展您的可观察值。
如果你把逻辑放在订阅中,它只会失去可移植性,并且在后期更难重构。这是一个典型的流切片合并场景
const stream1=observable
.pipe(tap(() => dosmg()))
const stream1WithLoggin=stream1.pipe(tap(message=>console.log(message))
const stream1WithHttp=stream1.pipe(mergeMap(message=>fetch(someurl))
关于rxjs。在订阅方法中添加代码是一个好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55001680/