有點背景。簡單變量檢查返回false,應該爲真
我收到了來自我的服務器進來的<Buffer 00 00 00>
形式我用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語句失敗。我對消息進行了類型檢查,並按預期輸出字符串。
我很在意這裏發生了什麼,但我無法想象出我的生活。
你用'.trim()'試過了嗎? '「OK」!=「OK」 – Satpal
控制檯聲明很棘手,可能不會按照代碼的順序輸出。嘗試登錄'else'語句。 – chazsolo
也許試試這個以確保所有東西都匹配.tostring()。toupper()。trim() – krisph