若仅依赖 AsyncPipe, 可能会让代码结构变得生硬, 甚至无法满足在特定条件下进行再次订阅或暂时取消订阅的需求。此时, 通过手动调用 subscribe 就能更加灵活地实现各种流程管理。...很多开发者会在组件内注入服务, 然后在某个生命周期钩子内订阅一个可观测对象, 根据返回的数据执行各种副作用逻辑, 例如更新变量、触发页面更新、调用额外的方法等等。...在大型项目中, 一些数据流的订阅需要与特定的触发条件或用户操作挂钩。...在这一过程中, 手动调用 subscribe 让开发者可以全程追踪可观测对象的声明周期并在销毁时机植入自定义逻辑。...唯有这样, 才能在多样化的业务条件下写出更加健壮、可读且可扩展的代码, 更好地发挥 RxJS 流式编程的威力。