RequestComplete 事件

[自 Windows 7 起弃用 Microsoft Agent,在后续版本的 Windows 中可能不可用。]

描述

服务器完成排队请求时出现。

语法

Sub agent**_RequestComplete** (ByVal Request**)**

组成部分 说明
Request 返回 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 关键字:

   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 事件