头图

一、简介

自定义事件是一种由开发者自主声明并调用的事件类型,它可以被埋设在任意可编辑的函数逻辑设计中。

 title=

因此,自定义事件为开发人员提供了高度灵活的事件调度机制,允许在代码中定义特定的触发条件。一旦声明并注册,这些自定义事件便能作为可重用的模块化组件,在应用程序的多个上下文中被便捷地调用与响应。

二、交互流程

自定义事件的声明需要通过全代码模式编写,即在需要声明元素的代码区中编辑e.json文件(元素声明文件),添加对于事件的声明信息。

 title=

声明体包含三个要素:事件名称、事件标题、事件说明。

"eventDescs": [
        {
            "name": "changeEvent",
            "title": "库存异常事件",
            "desc": "当检索发现有库存数异常时触发"
        }
    ]

而后在需要触发该事件的函数中进行调用,调用的句式为:

app.event.publish(sender="{fullname}"),其中fullname为触发事件的完整名称。

 title=

至此一个自定义事件的声明与埋设即完成,后续就能走正常的事件元素创建与编辑流程。

 title=

三、触发时机

自定义事件的触发时机就是通过app.event.publish调用时触发。每个自定义事件都可以被埋设到多处触发。

四、执行函数

自定义事件中的执行函数构建与普通事件相同。

在这里我们可以选择两种,一种为全局函数,选择任意一个服务函数,另一种是直接在内部函数中实现调用。至于内部函数编辑也是通过函数设计模块实现,参见 函数设计模块。

需要说明的是,在自定义事件中还不支持参数传递。

 title=

五、代码实现

在代码编辑器模式下,可以看到每个事件分为两个文件,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,则主要体现了执行函数本身的实现逻辑。

六、使用场景示例

任意需要监听时机变化与操作动作的场景中均可使用,自由度很高。

比如:在查询库存到达指定阈值后,触发告警提示事件,监听此事件的相关业务函数即可执行响应动作。

七、注意事项

自定义事件在各个元素中单独定义,是隔离的,不能互相触发调用。

进一步了解极态云,体验产品? 请访问极态云官网


极态云官方账号
1 声望0 粉丝

JIT 技术,为专业开发全面提速!极态云(jit)是一个基于全新软件开发理论(面向元素开发方法)、全新编程框架、全新开发工具、全新部署运行平台的企业级软件系统开发与运行平台,极大简化了应用系统的开发、部署...