若仅依赖 AsyncPipe, 可能会让代码结构变得生硬, 甚至无法满足在特定条件下进行再次订阅或暂时取消订阅的需求。此时, 通过手动调用 subscribe 就能更加灵活地实现各种流程管理。...很多开发者会在组件内注入服务, 然后在某个生命周期钩子内订阅一个可观测对象, 根据返回的数据执行各种副作用逻辑, 例如更新变量、触发页面更新、调用额外的方法等等。...例如, 在发起网络请求之前, 需要先进行本地缓存或权限校验, 然后在拿到结果数据时还要执行系列计算或调用多个不同的服务接口。...手动调用 subscribe 往往与对可观测对象的高级操作结合使用, 比如在网络请求前后执行拦截器、收集统计信息或者根据多条件灵活处理订阅时机。...唯有这样, 才能在多样化的业务条件下写出更加健壮、可读且可扩展的代码, 更好地发挥 RxJS 流式编程的威力。