首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在两个函数类型代码模板之间传递变量

如何在两个函数类型代码模板之间传递变量
EN

Stack Overflow用户
提问于 2019-04-14 07:26:11
回答 1查看 285关注 0票数 0

我的频道正在接收HL7信息,我的频道里有两个变压器。我在一个转换器中捕获来自HL7消息的所有数据,如:

代码语言:javascript
复制
- var vACCNo= msg['PID']['PID.17']['PID.17.1'].toString();
- var vSTATE=msg['PID']['PID.11']['PID.11.4'].toString();
  • ……在第二个转换器中,我将所有这些数据作为insert语句推入外部DB中,如insert到表x值(vACCNo,vSTATE.)。

在上面的设计中,不做任何事情,从第一变压器中捕获的数据在第二变压器中是可用的,并且可以工作。

现在,我计划摆脱这两个转换器,并将它们移到代码模板中,在那里,我计划为每个转换器创建一个单独的函数。

但是如何将第一个函数中捕获的变量传递给第二个函数呢?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-04-15 21:55:28

当你说两个变压器时,我猜你指的是同一个变压器上的两个步骤?不同的转换步骤编译成相同的javascript函数,因此它们共享相同的变量上下文/作用域。要实际将值传递给不同的转换器(比如从源转换器到目标转换器),通常需要使用channelMap。

在假定的情况下,可以将所有变量添加到从第一个函数返回的对象中。将对象传递给第二个函数。

代码模板

代码语言:javascript
复制
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)
}

变压器阶跃

  1. var obj = getValues(msg);
  2. var result = insertIntoDb(obj);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55672950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档