RequestComplete 事件

[Microsoft 代理从 Windows 7 开始已弃用,可能在后续版本的 Windows 中不可用。]

Description

在服务器完成排队请求时发生。

语法

代理*_RequestComplete** (ByVal请求**) **

组成部分 说明
请求 返回 Request 对象。

 

备注

此事件返回 Request 对象。 由于请求是异步处理的,因此可以使用此事件来确定服务器何时完成处理请求 (例如 GetPlaySpeak 方法) ,以便将此事件与应用程序生成的其他操作同步。 服务器仅将事件发送到创建对 Request 对象的引用的客户端,并且仅当为请求引用定义了全局变量时:

   Dim MyRequest 
   Dim Genie 

   Sub window_Onload
   
   Agent1.Characters.Load "Genie","https://agent.microsoft.com/characters/v2/genie/genie.acf"

   Set Genie = Agent.Characters("Genie")

   ' This syntax will generate RequestStart and RequestComplete events.
   Set MyRequest = Genie.Get("state", "Showing")
   ' This syntax will not generate RequestStart and RequestComplete events.
   Genie.Get "state", "Hiding"
   
   End Sub

   Sub Agent1_RequestComplete(ByVal Request)

   If Request = MyRequest Then
      Status = "Showing animation is now loaded"

   End Sub

由于在服务器处理请求之前不会分配动画 Request 对象,因此在尝试评估该对象之前,请确保 Request 对象存在。 例如,在 Visual Basic 中,如果使用条件来测试特定请求是否已完成,则可以使用 Nothing 关键字 (keyword) :

   Sub Agent1_RequestComplete (ByVal Request)

   If Not (MyRequest Is Nothing) Then
      If Request = MyRequest Then
      '-- Do whatever
      End If
   End If

   End Sub

注意

在 VBScript 1.0 中,即使未定义对 Request 对象的引用,也会触发此事件。 VBScript 2.0 中已修复此问题。

 

另请参阅

RequestStart 事件