我试图在Corda RPC中调用一个名为
startTrackedFlowDynamic
的函数,该函数接受2个参数:
在JAR中打包的startTrackedFlowDynamic(logicType:Class< out FlowLogic< T>>,vararg args:Any?)
调用此函数是从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)