我正在尝试调用 Corda RPC 中可用的函数 startTrackedFlowDynamic
它接受 2 个参数:
startTrackedFlowDynamic(logicType: Class<out FlowLogic<T>>, vararg args: Any?)
打包在一个 JAR 中
此函数的调用是从 Javascript 上下文 进行的(使用 GraalVM 来实现),我想调用此函数并将从请求对象(例如,即将到来)获得的参数传递给它来自 REST API)
例子:
如果请求包含数组 [::InitiatorA, iouValue]
,
我想像这样调用 startTrackedFlowDynamic:
startTrackedFlowDynamic(::InitiatorA, iouValue)
如果请求包含数组 [::InitiatorB, abc, xyz]
我想像这样调用 startTrackedFlowDynamic:
startTrackedFlowDynamic(::InitiatorB, abc, xyz)
如果请求包含数组 [::InitiatorC]
我想像这样调用 startTrackedFlowDynamic:
startTrackedFlowDynamic(::InitiatorC)
TLDR:我想将其作为通用 API,而不是为每个不同的 Flow 调用重新编写。 我希望能够将来自请求对象的动态数量的参数传递给此函数,而不是硬编码固定数量的参数并在参数数量更改时必须更新它
我要复制的行为的示例:
var func = function () {
console.log(arguments.length);
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
};
func.apply(null, ['::InitiatorA', 'abc', 'xyz'])
有什么建议吗?
最佳答案
它似乎适用于以下 JavaScript 语法
var argsArray = ['::InitiatorA', 'abc', 'xyz']
startTrackedFlowDynamic(...argsArray)
关于javascript - 使用 GraalVM 将变量参数从 javascript 传递给 java 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53337746/