【发布时间】:2017-06-19 12:26:09
【问题描述】:
一点背景。
我从服务器收到一条消息,格式为<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()吗?"OK" != "OK " -
控制台语句很棘手,可能不会按照您的代码顺序输出。尝试登录
else语句。 -
也许可以试试这个以确保一切都匹配 .tostring().toupper().trim()
标签: javascript node.js