javascript - 简单变量检查返回 false,应该为 true

标签 javascript node.js

一些背景知识。

我从我的服务器收到一条格式为 <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/

相关文章:

javascript - 带有标签的 ui-router url 参数

javascript - Node.JS 函数外部变量

node.js - 传递给 findOne 的参数必须是一个选项对象,如果您希望传递单个主键值,请使用 findById 我在 Sequelize 中已完成此操作

node.js - 从另一个 Nodejs 应用程序调用一个 Nodejs 应用程序中的 API 的方法

java - JavaScript 中哪种类型的值对应于 Java`List<>`?

node.js - ClientSession 无法序列化为 BSON

javascript - 使用 javascript 从 img 标签中分割纯文本

javascript - 一个信息窗口谷歌地图标记内有多个优惠

javascript - 如何在mysql中成功插入数据后显示警告框?

javascript - Node js发布请求而不刷新