RequestComplete 事件
[自 Windows 7 起弃用 Microsoft Agent,在后续版本的 Windows 中可能不可用。]
-
描述
-
服务器完成排队请求时出现。
-
语法
-
Sub agent**_RequestComplete** (ByVal Request**)**
组成部分 说明 Request 返回 Request 对象。
注解
该事件将返回 Request 对象。 由于请求会异步处理,因此可使用此事件来确定服务器何时完成处理请求(例如 Get、Play 或 Speak 方法),从而将此事件与应用程序生成的其他操作进行同步。 服务器会将该事件仅会发送到创建对 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 中修复。
另请参阅