跳至主要内容

触发事件节点

Raise Event Node Screenshot

概述

Raise Event节点允许您从图中触发一个事件。该事件可以被宿主项目或同一图中的Wait For Event节点监听。这对于根据图的状态触发宿主应用程序中的操作,或同步图的不同部分非常有用。

该节点需要一个事件名称,并可选择性地包含事件数据。事件名称用于在触发事件时进行标识,而事件数据则是您想要与该事件关联的任何附加信息。

Toast

在Rivet应用中,有一个名为toast的特殊事件,可以显示一条提示消息。toast事件接受一个字符串作为其数据,该字符串将用作提示消息的内容。

Raise Event Node Toast Example

输入项

标题数据类型描述默认值备注
Event NamestringThe 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.
DataanyThe data to associate with the event.(empty)The input will be coerced into the appropriate data type based on the value of the Data.

示例1:触发带数据的事件

  1. 创建一个文本节点并将文本设置为 Hello, world!
  2. 创建一个Raise Event节点并将Event Name保留为toast
  3. 将文本节点连接到Raise Event节点的Data输入端口。
  4. 运行图表。Raise Event节点的Result输出应为Hello, world!,并且Rivet应用中会显示一条toast消息。

Raise Event Node Example 1

示例2:等待Chat调用完成后再继续执行图中的其他部分

  1. 创建一个Chat Node并使用Text Node给它一个提示,比如"你叫什么名字?"。
  2. 创建一个Raise Event节点,将Event Name设置为chat,并将Chat节点的Response输出连接到Raise Event节点的Data输入。
  3. 在图的另一部分,添加一个Wait For Event Node并将事件名称设置为chat
  4. 运行图表。请注意,Wait For Event节点在Chat节点完成之前不会继续执行。

Raise Event Node Example 2

错误处理

如果未提供Event Name,Raise Event Node将会报错。

常见问题

问:如何监听被触发的事件?

A: 您可以通过使用RunGraphOptionsonUserEvent属性在宿主应用程序中监听该事件。您也可以通过使用Wait For Event Node在同一图形内部监听该事件。

问:我可以通过事件传递数据吗?

A: 是的,您可以通过为Data输入提供一个值来传递事件数据。该数据可以是任何数据类型。

问:如果我触发了一个无人监听的事件会怎样?

A: 如果您触发了一个无人监听的事件,将不会发生任何情况。该事件会被触发然后立即被丢弃。

问:触发事件与外部调用节点有何不同?

A: 外部调用节点会等待外部调用完成后继续执行,而触发事件节点在触发事件后会立即继续执行。

另请参阅