Angular Effects.ofType的工作原理
这个ofType来自@ngrx/effects:
注意这个形参的名称:allowedTypes:
ofType里面是一个filter操作:
rxjs里的老朋友:filter操作符
一旦我在UI上输入一个字符后,通过单步调试搞清楚ofType里设置的fitler逻辑是如何工作的:
应用程序调用store.dispatch发送一个SearchAction:
store内部有个属性actionObserver,是一个BehaviorSubject:
Subject (主体): 相当于 EventEmitter,并且是将值或事件多路推送给多个 Observer 的唯一方式。
ActionsSubject->BehaviorSubject->Subject:
subject里拿到监听它的observor列表,遍历,逐一通知:
Schedulers (调度器): 用来控制并发并且是中央集权的调度员,允许我们在发生计算时进行协调,例如 setTimeout 或 requestAnimationFrame 或其他。
Scheduler flush action execution:
最终这里调用到之前通过ofType内部的filter设置的过滤器:
因为filter返回true,所以继续执行链条的下一个元素:
即debounceTime.js:
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
Angular Effects.ofType的工作原理相关推荐
- SAP Spartacus 中 Angular json pipe 的工作原理
源代码如下: <ng-template cxOutletRef="header" cxOutletPos="before" let-jerryvar> ...
- Angular Injector.create的工作原理
下列这段代码: const BASE_URL = new InjectionToken<string>('只是描述');const injector =Injector.create({p ...
- 谈谈Angular关于$watch,$apply 以及 $digest的工作原理
这篇文章主要是面向那些刚开始学AngularJs和想要了解数据绑定(data-binding)是怎么工作的, 如果你已经熟悉如何使用angularjs了,我强烈建议你不用阅读了. angularjs使 ...
- RxJs map operator 工作原理分析
使用一个例子来研究 map 操作符的工作原理. 推荐阅读本文之前,先浏览这篇文章RxJs fromEvent 工作原理分析以了解相关知识. 源代码: import { Component, OnIni ...
- SAP Fiori Elements 框架里 Smart Table 控件的工作原理介绍
这是 Jerry 2021 年的第 34 篇文章,也是汪子熙公众号总共第 310 篇原创文章. Jerry 前一篇文章 深入掌握 SAP Fiori Elements 工作原理系列之二:如何给 Fio ...
- 深入理解 SAP Fiori Elements 工作原理系列之二:如何给 SAP Fiori Elements 应用添加自定义按钮
这是 Jerry 2021 年的第 33 篇文章,也是汪子熙公众号总共第 309 篇原创文章. Jerry 的日常工作内容从 2020 年 8 月转到 Angular 前端开发之后,算是领略到了这个流 ...
- SAP Spartacus自定义指令cxOutlet的工作原理
cxOutlet合集 SAP Spartacus自定义指令cxOutlet的工作原理 SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件 SAP Sparta ...
- javascript---001-运行原理01_前端三大技术_JS重要性_Atwood定律_JS应用_JS让人迷惑_TypeScript会取代JS吗_JS是一门编程语言_浏览器工作原理_浏览器内核
javascript-001-运行原理01 1.前端三大技术 HTML CSS Javascript 2.Javascript的重要性 (1)javascript是很多框架的基础,Vue,React, ...
- Android系统Recovery工作原理之使用update.zip升级过程分析(一)
这篇及以后的篇幅将通过分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理.我们先从update.zip包的制作开始,然后是And ...
最新文章
- SAP MM UB类型的退货STO流程简述
- 中兴c600olt数据配置_2698元起中兴天机Axon 11发布 轻薄设计视频双防抖
- Qt on android 蓝牙开发(控制小车)
- 计算机硬件中英对照,计算机硬件名称中英文对照表
- java se ee me都有什么区别?
- android学习笔记---66_自定义标签页
- 《麦肯锡方法》读书笔记16
- java speex转码_JAVA版-微信语音.speex转.wav
- Mac 下拷贝文件到移动硬盘
- 计算机桌面黑屏有鼠标,win7系统启动黑屏只有显示鼠标指针怎么办(图文)
- 如何学计算机打字,新手学习计算机打字全文阅读
- k-nearest neighbors algorithm - k 最近邻算法
- div是什么?标签?div+css
- VM16Pro安装win7
- 计算机无法启动 一直在启动修复需要多久,关于电脑总是卡机蓝屏启动修复~...
- Apple Watch已出现在巴黎柯莱特时尚店橱窗
- SAS中保留t值、F值和Z值的三位小数
- C/C++学习日记:C语言栈区与堆区浅谈
- sql替换或删除数据库中某字段中的特定字符
- 400倍加速, PolarDB HTAP实时数据分析技术解密