一些背景知识。
我从我的服务器收到一条格式为 <Buffer 00 00 00>
的消息我使用 Node string_decoder 函数将其转换为 utf8 编码的字符串:
var StringDecoder = require('string_decoder').StringDecoder;
var decoder = new StringDecoder('utf8');
global.message = null;
client.on('data', function(chunk) {
console.log(`New Message ${decoder.write(chunk)}`);
message = decoder.write(chunk);
})
运行时,会注销 New Message OK
这是正确的
在另一个函数中,我循环直到全局变量等于 OK,但是我遇到了一些问题:
console.log(`Global vari ${message}`);
if(message != "OK"){
setTimeout(check, 1000);
} else {
return cb(true);
}
以上登出Global vari OK
但是 if 语句失败。我已经对消息进行了 typeof 检查,它按预期输出字符串。
我对这里发生的事情感到困惑,但我一生都无法弄清楚。
最佳答案
在比较之前尝试 trim 以确保没有多余的空格:
if(sanitized.trim() != "OK"){
setTimeout(check, 1000);
} else {
return cb(true);
}
希望这有帮助。
关于javascript - 简单变量检查返回 false,应该为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42002110/