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
11 Answer
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 connect(80, "localhost") // or await connect({port: 80, host: "localhost"})