触发事件节点
概述
Raise Event节点允许您从图中触发一个事件。该事件可以被宿主项目或同一图中的Wait For Event节点监听。这对于根据图的状态触发宿主应用程序中的操作,或同步图的不同部分非常有用。
该节点需要一个事件名称,并可选择性地包含事件数据。事件名称用于在触发事件时进行标识,而事件数据则是您想要与该事件关联的任何附加信息。
Toast
在Rivet应用中,有一个名为toast
的特殊事件,可以显示一条提示消息。toast
事件接受一个字符串作为其数据,该字符串将用作提示消息的内容。
- 输入
- 输出
- 编辑器设置
输入项
标题 | 数据类型 | 描述 | 默认值 | 备注 |
---|---|---|---|---|
Event Name | string | The name of the event to raise. This input is only available if Use Event Name Input is enabled. | (required) | The input will be coerced into a string if it is not a string. |
Data | any | The data to associate with the event. | (empty) | The input will be coerced into the appropriate data type based on the value of the Data . |
输出
标题 | 数据类型 | 描述 | 备注 |
---|---|---|---|
Result | any | The data that was associated with the event. | If the Data input is not provided, the Result output will be an empty string ("" ). |
编辑器设置
设置 | 描述 | 默认值 | 使用输入切换 | 输入数据类型 |
---|---|---|---|---|
Event Name | The name of the event to raise. | (required) | Yes | string |
使用事件名称输入 | 如果启用,可以通过事件名称输入端口提供事件名称。 | False | No | N/A |
示例1:触发带数据的事件
- 创建一个文本节点并将文本设置为
Hello, world!
。 - 创建一个Raise Event节点并将Event Name保留为
toast
。 - 将文本节点连接到Raise Event节点的
Data
输入端口。 - 运行图表。Raise Event节点的
Result
输出应为Hello, world!
,并且Rivet应用中会显示一条toast消息。
示例2:等待Chat调用完成后再继续执行图中的其他部分
- 创建一个Chat Node并使用Text Node给它一个提示,比如"你叫什么名字?"。
- 创建一个Raise Event节点,将Event Name设置为
chat
,并将Chat节点的Response
输出连接到Raise Event节点的Data
输入。 - 在图的另一部分,添加一个Wait For Event Node并将事件名称设置为
chat
。 - 运行图表。请注意,Wait For Event节点在Chat节点完成之前不会继续执行。
错误处理
如果未提供Event Name
,Raise Event Node将会报错。
常见问题
问:如何监听被触发的事件?
A: 您可以通过使用RunGraphOptions的onUserEvent
属性在宿主应用程序中监听该事件。您也可以通过使用Wait For Event Node在同一图形内部监听该事件。
问:我可以通过事件传递数据吗?
A: 是的,您可以通过为Data
输入提供一个值来传递事件数据。该数据可以是任何数据类型。
问:如果我触发了一个无人监听的事件会怎样?
A: 如果您触发了一个无人监听的事件,将不会发生任何情况。该事件会被触发然后立即被丢弃。
问:触发事件与外部调用节点有何不同?
A: 外部调用节点会等待外部调用完成后继续执行,而触发事件节点在触发事件后会立即继续执行。