Angular Effects.ofType的工作原理
這個(gè)ofType來自@ngrx/effects:
注意這個(gè)形參的名稱:allowedTypes:
ofType里面是一個(gè)filter操作:
rxjs里的老朋友:filter操作符
一旦我在UI上輸入一個(gè)字符后,通過單步調(diào)試搞清楚ofType里設(shè)置的fitler邏輯是如何工作的:
應(yīng)用程序調(diào)用store.dispatch發(fā)送一個(gè)SearchAction:
store內(nèi)部有個(gè)屬性actionObserver,是一個(gè)BehaviorSubject:
Subject (主體): 相當(dāng)于 EventEmitter,并且是將值或事件多路推送給多個(gè) Observer 的唯一方式。
ActionsSubject->BehaviorSubject->Subject:
subject里拿到監(jiān)聽它的observor列表,遍歷,逐一通知:
Schedulers (調(diào)度器): 用來控制并發(fā)并且是中央集權(quán)的調(diào)度員,允許我們?cè)诎l(fā)生計(jì)算時(shí)進(jìn)行協(xié)調(diào),例如 setTimeout 或 requestAnimationFrame 或其他。
Scheduler flush action execution:
最終這里調(diào)用到之前通過ofType內(nèi)部的filter設(shè)置的過濾器:
因?yàn)閒ilter返回true,所以繼續(xù)執(zhí)行鏈條的下一個(gè)元素:
即debounceTime.js:
要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的Angular Effects.ofType的工作原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 免费且好玩的API接口(免费素材图片)
- 下一篇: 如何从ngrx store中获取Obse