一、简介
自定义事件是一种由开发者自主声明并调用的事件类型,它可以被埋设在任意可编辑的函数逻辑设计中。
因此,自定义事件为开发人员提供了高度灵活的事件调度机制,允许在代码中定义特定的触发条件。一旦声明并注册,这些自定义事件便能作为可重用的模块化组件,在应用程序的多个上下文中被便捷地调用与响应。
二、交互流程
自定义事件的声明需要通过全代码模式编写,即在需要声明元素的代码区中编辑e.json文件(元素声明文件),添加对于事件的声明信息。
声明体包含三个要素:事件名称、事件标题、事件说明。
"eventDescs": [
{
"name": "changeEvent",
"title": "库存异常事件",
"desc": "当检索发现有库存数异常时触发"
}
]
而后在需要触发该事件的函数中进行调用,调用的句式为:
app.event.publish(sender="{fullname}"),其中fullname为触发事件的完整名称。
至此一个自定义事件的声明与埋设即完成,后续就能走正常的事件元素创建与编辑流程。
三、触发时机
自定义事件的触发时机就是通过app.event.publish调用时触发。每个自定义事件都可以被埋设到多处触发。
四、执行函数
自定义事件中的执行函数构建与普通事件相同。
在这里我们可以选择两种,一种为全局函数,选择任意一个服务函数,另一种是直接在内部函数中实现调用。至于内部函数编辑也是通过函数设计模块实现,参见 函数设计模块。
需要说明的是,在自定义事件中还不支持参数传递。
五、代码实现
在代码编辑器模式下,可以看到每个事件分为两个文件,event.json、inner.py。
这两个文件分别对事件本身进行属性记录和对事件的执行函数实现。
下面是event.json原文,定义或记录了相关参数,如应用名、扩展类型等。
{
"type": "events.NormalType",
"funcType": "Inner",
"sender": "services.dd.changeEvent",
"title": "告警提示",
"path": "events",
"backendBundleEntry": ".",
"extendType": "self",
"fullName": "events.alarmAlert",
"backendResourcePath": "dist/events/alarmAlert/element.pkg",
"buildTime": 1725452820784,
"appId": "whwy.crm_tutorial",
"name": "alarmAlert",
"enable": true
}
对于inner.py,则主要体现了执行函数本身的实现逻辑。
六、使用场景示例
任意需要监听时机变化与操作动作的场景中均可使用,自由度很高。
比如:在查询库存到达指定阈值后,触发告警提示事件,监听此事件的相关业务函数即可执行响应动作。
七、注意事项
自定义事件在各个元素中单独定义,是隔离的,不能互相触发调用。
进一步了解极态云,体验产品? 请访问极态云官网
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。