Javascript 如何将此逻辑实现到方法中
试图将此逻辑实现到某个方法中,但最终会弄乱javascriptJavascript 如何将此逻辑实现到方法中,javascript,Javascript,试图将此逻辑实现到某个方法中,但最终会弄乱javascript function onMessageArrived(message) { console.log('Message Recieved: Topic: ', message.destinationName, '. Payload: ', message.payloadString, '. QoS: ', message.qos); // console.log(message); var status = mess
function onMessageArrived(message) {
console.log('Message Recieved: Topic: ', message.destinationName, '. Payload: ', message.payloadString, '. QoS: ', message.qos);
// console.log(message);
var status = message.payloadString;
var indicator = message.destinationName;
当插入下面的逻辑时,一切都乱了套。我需要帮助来解决这个问题
/*This is the logic that messes up the code */
if(message.payloadString == "ON")
{
if(message.destinationName == /data/read/level)
{
// Turn Level Indicator Red
}
else if (message.destinationName == /data/read/nozzle)
{
// Turn Nozzle Indicator Red
}
}
else if(message.payloadString == "OFF")
{
if(message.destinationName == /data/read/level)
{
// Turn Level Indicator Green
}
else if (message.destinationName == /data/read/nozzle)
{
// Turn Nozzle Indicator Green}} }
message.destinationName
是字符串,所以请将其用引号括起来。和第一个一样,它应该是“/data/read/level”
,而不是/data/read/level
,其他人也一样。首先,语法错误,其次,纠正它取决于最终要检查的内容。我无法判断您是否要与插入的路径进行比较,或者是否要与这些路径指向的位置中存储的值进行比较
如果要查看对象是否等于要提供的路径,请执行以下操作:
if(message.destinationName == 'data/read/level'){...}
if(message.destinationName == data.read.level){...}
如果要查看对象是否等于您在该位置存储的值,则需要执行以下操作
if(message.destinationName == 'data/read/level'){...}
if(message.destinationName == data.read.level){...}
您的console.log()
也有点不对劲,因为您尝试如何显示数据,您可以像这样在console.log()中创建一个对象
console.log({
topic: message.destinationName,
payload: message.payloadString,
qos: message.qos
});
它将在控制台中像其他任何东西一样呈现为常规数据对象,而不是试图在每个结果之间连接字符串,试图获得几乎相同的输出。希望这有帮助。这不是有效的JavaScript。您是否遇到语法错误?