startTrackedFlowDynamic

startTrackedFlowDynamic

我正在尝试调用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)

10-06 01:59