测试代码:

export class AppModule {constructor(events: EventService, client: AuthService) {const result$ = events.get(CartAddEntrySuccessEvent);result$.subscribe((event) => console.log(event));client.getUserToken().subscribe((token) => console.log('user token: ', token));client.getOccUserId().subscribe((id) => console.log('id: ', id));client.getClientToken().subscribe((clientToken) => console.log('Client token: ', clientToken));client.getClientToken().subscribe((clientToken) => console.log('Client token: ', clientToken));client.isUserLoggedIn().subscribe((logged) => console.log('user logged? ', logged));client.authorize('1', '2');}
}

所有数据结构都在this.store.source._value里:

return一个();里面包了一个函数:

getUserToken是一个memoized函数,传入select,返回一个selectorOperator,再传入pipe:

pipeFromArray, 如果输入参数只有一个元素,则直接返回它。

source$指向store,从source里执行map操作,map的逻辑就是pathOrMapFn:

MapOperator内部,_next的执行逻辑,就是针对输入的value, 调用project函数:

next:调用pathOrMapFn:

创建名为siteContext的Feature Selector:

createFeatureSelector:

args此刻就为siteContext state的内容:

整段代码的语义:执行map和箭头函数fn,结果赋给args, 再执行memoizedProjector.memoized函数,此时args就是输入参数。

更多Jerry的原创文章,尽在:“汪子熙”:

SAP Spartacus AuthService.getUserToken的实现相关推荐

  1. SAP Spartacus 3.0 的一些变化

    SAP Spartacus 确实使用到了Bootstrap这个框架: Technical Changes in Spartacus 3.0 Breaking Changes Translations ...

  2. SAP Spartacus 的会话管理 Session Management

    官网 从一开始,Spartacus 就包含了客户端身份验证和用户身份验证. 尽管这对于 Web 应用程序来说并不常见,但对于 Spartacus 来说是必须的,因为后者需要使用 OCC API. 客户 ...

  3. SAP Spartacus 用户认证的实现

    文章目录 UserAuthModule Authentication Flow AuthService Storing Tokens and User Identifiers 用户认证的典型流程和包含 ...

  4. SAP Spartacus 4.0 版本因为 hamburger 依赖导致构建出错的问题

    build from Schematics 遇到错误消息: SassError: Undefined function. https://github.com/SAP/spartacus/issues ...

  5. SAP Spartacus UI 服务器端渲染的调试启动方式 - debug 模式

    首先确认你已经熟悉这篇文章的启动方式:SAP Spartacus develop branch 的服务器端渲染启动方式. 第一步 添加一个新的 build script,把 --configurati ...

  6. SAP Spartacus Session affinity

    参见这个讨论. 后端运行在多个 pods/节点时,当子序列请求过早进入时,后端将无法跨集群发送缓存失效请求.此外,如果多个请求分散在多个节点上,则会消耗延迟和不必要的资源. 对于单个客户端,Spart ...

  7. SAP Spartacus 4.0 的技术变化

    在您迁移到 4.0 版库之前,我们强烈建议您切换到新的应用程序结构和新的功能库. 在多个小步骤中进行迁移更容易(迁移到新的应用程序结构,切换到提取的功能库,然后迁移到 4.0),您可以确保在每一步之后 ...

  8. SAP Spartacus travis ci-scripts 下面 e2e-cypress.sh 的实现分析

    文件地址:https://github.com/SAP/spartacus/blob/develop/.travis.yml 里面引用到了 e2e-cypress.sh: https://github ...

  9. SAP Spartacus 里的 .release-it.json 文件

    在 SAP Spartacus package.json 里有一个依赖叫做 release-it: 这个工具的链接:https://github.com/release-it/release-it 这 ...

最新文章

  1. Spring Cloud第六章:配置中心Config
  2. 直播预告 | 对话杨立昆:人,机器与未来
  3. 苹果如何使用神经网络在点云中做对象检测
  4. yii required 字段去除*号
  5. python五十:反射
  6. ElasticSearch PPT-笔记
  7. 零钱兑换—leetcode322
  8. 「软件项目管理」一文详解软件项目管理概述
  9. [渝粤教育] 西南科技大学 管理信息系统 在线考试复习资料(1)
  10. 【HDU - 1546】 Idiomatic Phrases Game(Dijkstra,可选map处理字符串)
  11. 发光的二次元克拉克拉 满足年轻用户个性化、碎片化的文娱需求
  12. 什么是树(Tree),数据结构中一般有哪些树?
  13. 1.4.1bat脚本命令COPY 拷贝 复制到
  14. c#中的一些容易混淆的概念
  15. arduino学习笔记(三)——LED相关
  16. 【游戏周边】Unity,UDK,Unreal Engine4或者CryENGINE——我应该选择哪一个游戏引擎...
  17. 信息系统项目管理师-学习笔记与复习资料
  18. 风电变桨滑环工作原理
  19. php多张图片下载(zip压缩)
  20. 数学建模常识及论文写作方法

热门文章

  1. yarn container写token目录选择bug
  2. OpenTLD相关资料
  3. 转:函数要多小才够好——谈小函数之道
  4. LVS-DR模式原理
  5. 数据库视频(二)——增删改查
  6. Silver Cow Party POJ - 3268 (固定起点和固定终点的最短路)
  7. 12.oauth密码模式identity server4实现
  8. Django的Field(字段)
  9. (转发)一个通用的C++ 消息总线框架
  10. 移动端效果之Picker