SAP Spartacus AuthService.getUserToken的实现
测试代码:
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的实现相关推荐
- SAP Spartacus 3.0 的一些变化
SAP Spartacus 确实使用到了Bootstrap这个框架: Technical Changes in Spartacus 3.0 Breaking Changes Translations ...
- SAP Spartacus 的会话管理 Session Management
官网 从一开始,Spartacus 就包含了客户端身份验证和用户身份验证. 尽管这对于 Web 应用程序来说并不常见,但对于 Spartacus 来说是必须的,因为后者需要使用 OCC API. 客户 ...
- SAP Spartacus 用户认证的实现
文章目录 UserAuthModule Authentication Flow AuthService Storing Tokens and User Identifiers 用户认证的典型流程和包含 ...
- SAP Spartacus 4.0 版本因为 hamburger 依赖导致构建出错的问题
build from Schematics 遇到错误消息: SassError: Undefined function. https://github.com/SAP/spartacus/issues ...
- SAP Spartacus UI 服务器端渲染的调试启动方式 - debug 模式
首先确认你已经熟悉这篇文章的启动方式:SAP Spartacus develop branch 的服务器端渲染启动方式. 第一步 添加一个新的 build script,把 --configurati ...
- SAP Spartacus Session affinity
参见这个讨论. 后端运行在多个 pods/节点时,当子序列请求过早进入时,后端将无法跨集群发送缓存失效请求.此外,如果多个请求分散在多个节点上,则会消耗延迟和不必要的资源. 对于单个客户端,Spart ...
- SAP Spartacus 4.0 的技术变化
在您迁移到 4.0 版库之前,我们强烈建议您切换到新的应用程序结构和新的功能库. 在多个小步骤中进行迁移更容易(迁移到新的应用程序结构,切换到提取的功能库,然后迁移到 4.0),您可以确保在每一步之后 ...
- SAP Spartacus travis ci-scripts 下面 e2e-cypress.sh 的实现分析
文件地址:https://github.com/SAP/spartacus/blob/develop/.travis.yml 里面引用到了 e2e-cypress.sh: https://github ...
- SAP Spartacus 里的 .release-it.json 文件
在 SAP Spartacus package.json 里有一个依赖叫做 release-it: 这个工具的链接:https://github.com/release-it/release-it 这 ...
最新文章
- Spring Cloud第六章:配置中心Config
- 直播预告 | 对话杨立昆:人,机器与未来
- 苹果如何使用神经网络在点云中做对象检测
- yii required 字段去除*号
- python五十:反射
- ElasticSearch PPT-笔记
- 零钱兑换—leetcode322
- 「软件项目管理」一文详解软件项目管理概述
- [渝粤教育] 西南科技大学 管理信息系统 在线考试复习资料(1)
- 【HDU - 1546】 Idiomatic Phrases Game(Dijkstra,可选map处理字符串)
- 发光的二次元克拉克拉 满足年轻用户个性化、碎片化的文娱需求
- 什么是树(Tree),数据结构中一般有哪些树?
- 1.4.1bat脚本命令COPY 拷贝 复制到
- c#中的一些容易混淆的概念
- arduino学习笔记(三)——LED相关
- 【游戏周边】Unity,UDK,Unreal Engine4或者CryENGINE——我应该选择哪一个游戏引擎...
- 信息系统项目管理师-学习笔记与复习资料
- 风电变桨滑环工作原理
- php多张图片下载(zip压缩)
- 数学建模常识及论文写作方法