少しの背景。シンプルな変数チェックはfalseを返す、真でなければならない
私はUTF8エンコードされた文字列にこれを有効にする機能string_decoderノード使用<Buffer 00 00 00>
の形で来る私のサーバーからのメッセージ受信しています:
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
をログアウトします別の関数で
console.log(`Global vari ${message}`);
if(message != "OK"){
setTimeout(check, 1000);
} else {
return cb(true);
}
上記のログアウトはGlobal vari OK
ですが、if文が失敗します。私はメッセージの型チェックをして、期待どおりの文字列を出力します。
私はここで何が起こっているのか困っていますが、私の人生のためにそれを理解することはできません。
'.trim()'を試したことがありますか? '' OK '!= "OK" ' – Satpal
コンソールステートメントは扱いにくく、コードの順に出力されないことがあります。 'else'ステートメントにログインしてみてください。 – chazsolo
多分、すべてが.tostring()。toupper()。trim()にマッチするようにこれを試してください。 – krisph