Angular

我们在Angular框架的代码里能看到一个名为processQueue的函数:

这个函数是通过scope.scope.scope.apply启动的:

核心代码位于一个for循环里,循环体是一个存储异步处理任务的队列asyncQueuePosition:

for (var asyncQueuePosition = 0; asyncQueuePosition < asyncQueue.length; asyncQueuePosition++) {try {asyncTask = asyncQueue[asyncQueuePosition];fn = asyncTask.fn;fn(asyncTask.scope, asyncTask.locals);} catch (e) {$exceptionHandler(e);}lastDirtyWatch = null;}

队列里每个元素长这样的:一个处理函数fn,一个局部变量locals和scope对象:

这个注释也非常有用:一旦Angular发现由scope.scope.scope.apply触发的JavaScript执行序列里又出现了scope.scope.scope.apply的嵌套调用,会抛出错误消息:$digest already in progress

// It’s safe for asyncQueuePosition to be a local variable here because this loop can’t

// be reentered recursively. Calling $digest from a function passed to $evalAsync would

// lead to a ‘$digest already in progress’ error.

C4C 事件队列

C4C的事件处理器,EventProcessor.js有一个事件队列:

该队列的实现位于sap/client/evt/的OperationQueue.js中:

随便在C4C UI做一个点击,能触发EventProcessor的_processQueue,C4C事件队列的处理和Angular思路一样,只不过是一个while循环替代了Angular的for循环:

C4C事件队列里每个元素属性如下,可以同Angular事件元素做对比:

fFunc就相当于Angular时间元素的fn属性,environment相当于Angular事件元素的scope属性。

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

Angular和SAP C4C的事件处理队列 1相关推荐

  1. Angular和SAP C4C的事件处理队列

    Angular 我们在Angular框架的代码里能看到一个名为processQueue的函数: 这个函数是通过$scope.$apply启动的: 核心代码位于一个for循环里,循环体是一个存储异步处理 ...

  2. SAP系统和微信集成的系列教程之九:如何将微信用户发送给微信公众号的内容自动转存到SAP C4C系统

    本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上. 最近有不少朋友在微信上向我咨询SAP系统和微信公众号集成的问题,因此我把当时写的英文版翻译成中文,重新发布在我 ...

  3. sap 发送mesage_SAP系统和微信集成的系列教程之九:如何将微信用户发送给微信公众号的内容自动转存到SAP C4C系统...

    本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上. 最近有不少朋友在微信上向我咨询SAP系统和微信公众号集成的问题,因此我把当时写的英文版翻译成中文,重新发布在我 ...

  4. 如何用代码的方式取出SAP C4C销售订单创建后所有业务伙伴的数据

    比如我创建了一个Sales Order(销售订单)后,如何用代码的方式取出这些通过SAP Partner determination自动填充的Involved Parties信息呢? 一种方法可以使用 ...

  5. SAP成都研究院小伙伴们开发的一个SAP C4C POC - 通过名片扫描的方式录入联系人数据到系统

    该POC实现的功能:通过名片扫描的方式录入联系人数据到系统,由SAP成都研究院Cloud for Customer开发团队开发. 登录C4C系统,选择Card Scan工作中心: 通过C4C标准的at ...

  6. 一步步使用SAP C4C Cloud Application Studio创建一个BO和对应的屏幕

    打开SAP C4C Cloud Application Studio, 进入Solution Explorer,右键菜单里选择Add -> New Item: 新建一个Business Obje ...

  7. 如何使用SAP C4C Repository Explorer里的BO test shell

    在SAP研究院做过SAP Business ByDesign和SAP Cloud for Customer后台开发的小伙伴们,都知道ABAP 里 BO test shell这个工具. 在C4C Clo ...

  8. SAP系统和微信集成的系列教程之十:如何在SAP C4C系统里直接回复消息给微信用户

    本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上. 系列目录 (1) 微信开发环境的搭建 (2) 如何通过微信公众号消费API (3) 微信用户关注公众号之后,自 ...

  9. SAP系统和微信集成的系列教程之四:如何将SAP C4C主数据变化推送给微信公众号的关注者

    这是Jerry 2020年的第85篇文章,也是汪子熙公众号总共第267篇原创文章. 本系列的英文版Jerry写作于2017年,这个教程总共包含十篇文章,发表在SAP社区上. 系列目录 (1) 微信开发 ...

最新文章

  1. 在Java中使用Socket模拟客户端和服务端(多线程)
  2. bootcmd 和bootargs
  3. 打造大数据和AI能力底座 联通大数据深度参与“新基建”
  4. HTML5中微数据在搜索引擎中的使用举例
  5. 程序员的遗憾:为什么我没早学数据分析?
  6. 36.5. height / width
  7. linux oracle pam,Linux技术之深入Linux PAM 体系结构(一)
  8. 一步一步理解日历calendar(一)
  9. 【Statistics】10g中 Automatic Statistics Collection维护窗口之探查
  10. python中list是链表吗_Python
  11. 微信应用开发简单示例,学生自助报道系统
  12. cityscapes数据集上的类别统计分布
  13. 章文嵩:开源,LVS,以及留下的无数传说
  14. error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-h4wtvo23\opencv\
  15. 现在国际上发行的优秀的儿童期刊杂志有哪些
  16. XBee zigbee 使用指南---XBee API模式示例
  17. Field userDao in com.sd.sbmb.service.impl.UserServiceImpl required a bean of type ‘com.sd.sbmb.dao.U
  18. pandas批量拆分、合并EXCEl
  19. 托管调试助手 ContextSwitchDeadlock:“CLR 无法从 COM 上下文 0x8d4e70 转换为 COM 上下文 0x8d4db8,这种状态已持续 60 秒
  20. kubesphere插件,应用商店,应用仓库

热门文章

  1. 盛松成:别死盯着M2不放,社会融资规模更能反映中国实际
  2. 机器学习面试题(part4)
  3. sql between 效率高吗_B2增驾好吗
  4. 不借助 Fiori client,直接在手机浏览器里调用 SAP UI5 BarcodeScanner 实现条形码扫描的可能性?
  5. 一个实际的例子学习 SAP BTP Java 应用的 @Before 注解使用方式
  6. 用 ABAP 实现的报表欢迎屏幕 - Splash Screen
  7. Chrome 开发者工具无法显示服务器正常返回的 HTTP 请求 - Failed to load response data
  8. 如何基于 SAP CDS view 生成 object page
  9. SAP Spartacus Definition of Done
  10. HTML css嵌套的一个例子