Я не очень понимаю что тут происходит, но предположу что у вас событие
client.socket.on('data')
вызывается два раза — для каждого ответа от сервера. А промис вы возвращаете сразу как получили первый ответ.
UPD принимаете все данные, но возвращаете только по событию
'end'sendCommand(cmd) {
if(cmd) {
this.socket.write(cmd + '\u0000\r\n');
}
return new Promise((resolve, reject) => {
const chunks = [];
const handleData = chunk => {
chunks.push(chunk);
};
const handleError = err => {
reject(err);
};
const handleEnd => {
const data = Buffer.concat(chunks).toString().match(/.*?\r\n/g);
resolve(data);
}
this.socket.on('data', handleData);
this.socket.on('error', handleError);
this.socket.on('end', handleEnd);
});
}