promise-socket
This module allows to convert
net.Socket
stream into
its promisified version, which returns
Promise
object fulfilled when stream"s events occurred.
Requirements
This module requires Node >= 6.
Installation
npm install promise-socket
Usage
const PromiseSocket TimeoutError =
Typescript:
// or
constructor
const promiseSocket = socket
PromiseSocket
object requires socket
object to work. New
net.Socket
object is created if socket
argument is missing.
Example:
const net = const PromiseSocket = const socket = const promiseSocket = socket
Typescript:
stream
const socket = promiseSocketstream
Original socket object.
Example:
console
connect
await await await
Initiate a connection on a given socket. Promise if fulfilled when connect
event is emitted. Check
socket.connect
for
arguments.
Example:
await // orawait
setTimeout
socket
Set the timeout for idle socket and after this timeout the socket will be
destroyed with a TimeoutError
. It means that socket methods (connect
,
read
, write
, etc.) will be rejected.
Example:
socketawait socket
read
const chunk = await promiseSocket
Check
PromiseReadable.read
for details.
readAll
const content = await promiseSocket
Check
PromiseReadable.readAll
for details.
iterate
for await const chunk of promiseDuplex
Check
PromiseReadable.iterate
for details.
Symbol.asyncIterator
for await const chunk of promiseDuplex
Check
PromiseReadable[Symbol.asyncIterator]
for details.
write
await promiseSocket
Check
PromiseWritable.write
for details.
writeAll
await promiseSocket
Check
PromiseWritable.writeAll
for details.
end
await promiseSocket
Check
PromiseWritable.once
for details.
once
const result = await promiseSocket
Check
PromiseReadable.once
and
PromiseWritable.once
for details.
destroy
promiseSocket
This method calls destroy method on stream and cleans up all own handlers.
TimeoutError
sockettry socket catch e if e instanceof TimeoutError console
This is an error class that is used when timeout occured after using
setTimeout
method.
See also
PromiseReadable
,
PromiseWritable
,
PromiseDuplex
,
PromisePiping
.
License
Copyright (c) 2017-2019 Piotr Roszatycki mailto:piotr.roszatycki@gmail.com