4

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

有什么建议么?

4

1 回答 1

1

它似乎适用于以下 JavaScript 语法

var argsArray = ['::InitiatorA', 'abc', 'xyz']
startTrackedFlowDynamic(...argsArray)
于 2018-11-21T05:32:47.203 回答