Angular应用里使用rxjs提供的观察者和发布者实现事件处理
2023-09-14 09:03:57 时间
比SAP的UI5 event bus要复杂些
调用栈1:应用代码里,抛出sendData的事件,参数为下图调试器里的json对象:
调用栈2:还是在应用层代码内:
this._eventBus = new Subject();
broadcast方法的实现是将执行转交给this._eventBus.
调用栈3:典型的观察者-发布者模式,遍历当前所有观察者,调用next方法
调用栈4: 执行订阅者原型链上的next方法:
调用栈5:执行FilterSubscriber原型链上的next方法:
调用栈6:执行MapSubscriber原型链上的next方法:
调用栈7:执行SafeSubscriber原型链上的next方法:
最终执行到应用层里的观察者的对应方法:
通过这张图来理解:
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关文章
- [Angular] FormBuildAPI
- [Angular] USING ZONES IN ANGULAR FOR BETTER PERFORMANCE
- [Angular2 Router] Use Params from Angular 2 Routes Inside of Components
- [Angular 2] Value Providers & @Inject
- [Angular 2] NgNonBindable
- [Angular 2] Controlling how Styles are Shared with View Encapsulation
- [AngularJS] Angular 1.3: ng-model-options updateOn, debounce
- SAP UI5和Angular的函数防抖(Debounce)和函数节流(Throttle)实现原理介绍
- Angular应用ng serve命令行的学习笔记
- Angular 服务器端渲染应用的一个错误消息 type ReferenceError - localStorage is not defined
- 如何找到Angular应用的某个directive是属于哪一个Angular module
- Angular应用只执行指定单元测试的小技巧
- 如何创建 Angular 库并在 Angular 应用里调用
- 使用 Angular CLI 创建基于 Angular 12 的应用
- 运行在 CCV2 环境上的 Angular 服务器端渲染应用的性能瓶颈分析
- 使用Angular的http client发送请求,请求response总是被当成json类型处理
- Angular源代码里字母Theta的含义
- Angular应用里input字段后面的_ngcontent-hqi是什么含义
- Angular应用的angular.json文件字段一览
- Angular应用初始化APP_INITIALIZER
- angular 过滤器(日期转换,时间转换,数据转换等)