zl程序教程

您现在的位置是:首页 >  前端

当前栏目

Angular应用里使用rxjs提供的观察者和发布者实现事件处理

Angular应用 实现 提供 Rxjs 观察者 事件处理 使用
2023-09-14 09:03:57 时间

比SAP的UI5 event bus要复杂些

调用栈1:应用代码里,抛出sendData的事件,参数为下图调试器里的json对象:

clipboard1

调用栈2:还是在应用层代码内:

this._eventBus = new Subject();

clipboard2

broadcast方法的实现是将执行转交给this._eventBus.

调用栈3:典型的观察者-发布者模式,遍历当前所有观察者,调用next方法

clipboard3

调用栈4: 执行订阅者原型链上的next方法:

clipboard4

调用栈5:执行FilterSubscriber原型链上的next方法:

clipboard5

调用栈6:执行MapSubscriber原型链上的next方法:

clipboard6

调用栈7:执行SafeSubscriber原型链上的next方法:

clipboard7

最终执行到应用层里的观察者的对应方法:

clipboard8

通过这张图来理解:

clipboard9

要获取更多Jerry的原创文章,请关注公众号"汪子熙":