Mashup Builder > 函数 > 创建函数表达式的最佳做法
创建函数表达式的最佳做法
以下函数和小组件支持在混搭中编写自定义 JavaScript 表达式:
表达式函数 - 计算结果为数值
验证器函数 - 计算结果为布尔值
栅格小组件 - 用于在编辑栅格单元格时评估用户输入
TW.log 函数仅供开发使用
可使用 TW.log() 函数记录与混搭中表达式相关的调试、错误、警告和信息消息。在运行时,日志消息会显示在混搭日志对话框中。例如:
TW.log.debug('debug')
TW.log.error('error')
TW.log.warn('warn')
TW.log.info('info')
如果打开包含大量表达式日志记录语句的混搭,则会显著影响混搭性能。如果混搭中使用了大量日志语句,建议避免将其应用于实际生产环境。在开发和测试混搭时,可使用日志语句。但在将混搭部署至生产环境前,应将其转换为备注或将其从代码中移除。
检查运行时调试控制台
设计包含表达式的混搭后,请在运行时检查调试信息对话框。可使用此功能追踪混搭的执行情况,以利于识别设计或实施中的逻辑问题,例如循环绑定和无限循环等。要查看混搭的调试信息,请单击运行时工具栏上的“显示/隐藏调试信息”
解析 JSON 输入
在表达式中使用 JSON 数据时,避免使用 JSON.parse() 方法从字符串解析和转换 JSON。您可以直接在设置为 JSON 基本类型的参数中访问 JSON 对象。
使用 TW.setTimout 函数
在先前的 ThingWorx 版本中,函数表达式中不支持 setTimeout。在 ThingWorx 9.6 或更高版本中,最多可同时执行 10 个包含 TW.setTimeout 函数的表达式。可在每个表达式函数中定义单个 setTimeout 函数。在表达式中的 setTimeout 函数之前或之后添加的所有代码均不予执行。可为函数设置的最大超时值限制为 10 秒。当定义的值超出此限制时,函数值会自动设置为 10 秒,并在运行时的混搭日志中显示一条 TW.log.warn 消息。
TW.setTimeout(() => {
TW.log.info("Delayed for 1 second.")
}, "1000");
* 
在运行时最多允许十个 Web 工作器执行包含 setTimeout 函数的表达式。附加表达式在未有工作器空出前处于排队等候状态。
使用 TW.sessionStorage 函数
存储在 window.sessionStorage 对象中的名称和值对仅在浏览器会话期间可用。由于安全表达式异步运行,因此可能会产生争用条件。例如,一个表达式更新会话存储属性,另一个在获得更新值之前运行。为减少争用条件并确保会话存储更新在另一表达式开始运行时可用,应使用 Changed 事件链接相关表达式。
* 
window.sessionStorage 变量与 Thingworx GlobalSessionVariables 无关联。
这对您有帮助吗?