若仅依赖 AsyncPipe, 可能会让代码结构变得生硬, 甚至无法满足在特定条件下进行再次订阅或暂时取消订阅的需求。此时, 通过手动调用 subscribe 就能更加灵活地实现各种流程管理。...举例而言, 假设在组件模板中有某个按钮, 只有用户手动点击按钮时, 才要去订阅一个可观测对象来进行一连串操作, 然后将结果显示到页面上。...假设用户滚动到页面底部后, 希望再去请求一批数据填充到列表中, 这时若不通过手动调用 subscribe, 就会失去手动管理何时获取数据、如何处理结果、在请求开始与结束时进行哪些逻辑(比如显示加载动画、...如果使用 AsyncPipe 进行数据绑定, 多数时候只能被动地等待流的推送过程, 无法在订阅阶段插入更多自定义逻辑。...每当 source$ 推送一个值, 日志系统就会打印出接收到的值, 而组件实例的 message 属性也会在每次推送时得到追加更新, 进而在模板中进行展示。