node-red - 在 Node-Red 的函数节点中是否可以嵌套 If 语句?
问题描述
关于函数节点:在我看来,好像我不能在其他 If 或 Switch 中使用 If-Elif-Else 语句。
问题:是否可以嵌套 If 或 Switch?或者有没有更好的方法在 Nodered 中实现这样的事情?
例子:
switch (msg.payload.auto)
{
case "Manuell":
if (msg.payload.schattierung == "Ost")
{
var levelValue = "Schatten"
}
else if (msg.payload.schattierung == "Alle")
{
var levelValue = "Schatten"
}
else
{
var levelValue = "Offen"
}
case "Auto":
if (msg.payload.azimuth <= 225)
{
var levelValue = "Offen"
}
else if (msg.payload.azimuth < 235)
{
var levelValue = "Halb"
}
else
{
var levelValue = "Offen"
}
default:
var levelValue = "Offen"
}
var msgLevel = { payload: levelValue }
return msgLevel
解决方案
嵌套 If 块或嵌套 Switch/If 块可以正常工作,但您也可以使用 switch 节点和更改节点集合构建类似的东西来设置值。
需要注意的一点是,在功能节点中用新消息完全替换传入消息是非常低效和糟糕的形式。最好只替换现有的msg.payload
. 这也意味着使用msg
对象上的其他键来保持状态的任何节点继续正常工作(例如,http-response 节点需要由 http-in 节点创建的原始消息才能使其一路顺流工作适当地)
推荐阅读
- spring-boot - Feign 客户端方法和 java.lang.IllegalArgumentException: Body parameter 1 was null
- python - 熊猫数据框 groupby 不丢失分组的列
- asp.net - 使用 asp.net 向 GoDaddy 发送电子邮件
- deployment - 是否可以将nextjs和strapi一起部署到heroku?
- html - 为什么这些标签会被 MGans 的 HtmlSanitizer 删除?
- gltf - 使用 gltf-transform 合并具有一些公共节点的多个 GLTF
- reactjs - 如何在相同的元素上结合 React-Spring useTrail 和 useTransition?
- powershell - Windows Powershell - 格式化 gci 输出
- excel - 将行平均分成工作表
- javascript - 在 GitHub Pages 上更新 React 应用程序的最短路径是什么?