当您说 2 个变压器时,我假设您的意思是同一个变压器中的两个步骤?不同的转换器步骤编译成相同的 javascript 函数,因此它们共享相同的变量上下文/范围。要将值实际传递给不同的转换器(例如从源转换器到目标转换器),通常您会为此使用 channelMap。
在您(假定的)情况下,您可以将所有变量添加到从第一个函数返回的对象中。将对象传递给第二个函数。
代码模板
function getValues(msg) {
var fieldWithComplicatedAssignment = '';
var result = {
vACCNo: msg['PID']['PID.17']['PID.17.1'].toString(),
vSTATE: msg['PID']['PID.11']['PID.11.4'].toString(),
fieldWithComplicatedAssignment: fieldWithComplicatedAssignment
};
if (optionalCondition) {
result.optionalField = '';
}
return result;
}
function insertIntoDB(obj) {
// insert into table x values (obj.vACCNo, obj.vSTATE....)
// return a result status indicating succeeded or failure (or
// just throw an error from this function)
}
变压器步骤
var obj = getValues(msg);
var result = insertIntoDb(obj);