上一主题: RemoteTarget.receivedResult 方法下一主题: RemoteTarget.wasAborted 方法


RemoteTarget.result 方法

脚本生成两种类型的结果信息: 通常写入屏幕的输出和最终返回值。 该方法检索远程执行进程的返回值的表示。 由于返回结果是脚本评估的最后一步,因此该方法仅在脚本执行成功完成时返回有效值。 hasCompleted() 返回 true,errorOccurred() 返回 false。 由于远程执行的返回值必须通过网络传输到发起请求的系统,因此会在远程系统上将该返回值序列化到 XML 表示中,然后 RemoteTarget.result() 方法返回其序列化表示的结果值。

使用 get-remoteResult() funclet(它将 RemoteTarget 对象本身作为参数)将序列化表示形式转换为 JavaScript 正则值。 通常不需要脚本直接调用 result()。 序列化可保持类型信息。 例如,如果远程节点返回一个数字,那么 get-remoteResult() 会返回数字类型的值。 如果远程系统返回“日期”对象,那么该对象在原始系统上同样为日期。

远程脚本的返回值并不仅限于简单数据类型。 也可以返回复杂数组或仅包含数据的对象,以允许远程执行在服务器之间传输大量日期。 唯一的限制是数据结构不能包含任何循环引用。

该方法具有以下语法:

result()

远程脚本返回包含值的序列化 XML 表示的字符串。

示例

获取远程执行的序列化表示形式和实际值:

rt = new RemoteTarget("ascli1", "bob", "ca123456");
run-remote "[1,2,3]" on rt -wait
? rt.result()
v = get-remoteResult(rt) // 内部调用 result()
? typeof v      // 数组
? typeof v[0]   // 数字
arrdump v

另请参阅:

get-remoteResult 命令-从远程目标获取结果 (Funclet)

RemoteTarget.output 方法