I have written the following tcp client
in nodejs.
const net = require('net');
const HOST = 'linux345';
const PORT = 2345;
let ErrCode = 1;
const client = new net.Socket();
client.connect(PORT, HOST, function() {
ErrCode = 0;
});
client.on('data', function(data) {
console.log('Client received: ' + data);
if (data.toString().endsWith('exit')) {
client.destroy();
}
});
client.on('close', function() {
});
client.on('error', function(err) {
ErrCode = err.code;
console.log(ErrCode);
});
console.log(ErrCode);
Please suggest how can I write same logic using async/await
I have looked into the following post but it is not helpful. node 7.6 async await issues with returning data
There is an amazing package that wraps the native Node socket in a promise. Allowing you to utilize async/await
syntax on all socket methods.
The package can be found on NPM.
Example
import net from "net"
import PromiseSocket from "promise-socket"
const socket = new net.Socket()
const promiseSocket = new PromiseSocket(socket)
await promiseSocket.connect(80, "localhost")
// or
await promiseSocket.connect({port: 80, host: "localhost"})