avalue
v2.1.0
Published
## Methods
Downloads
18
Readme
avalue
Methods
set(value) - set value|Error and resolve|reject promise
get(now?: boolean) - returns promise for a value (pending or resolved|rejected). If
now === true
resolves|rejects promise and returns it with the value|Error (no mather it was already set or not)value() - returns value|Error (if already resolved|rejected) or undefined
unset() - reset both - value and promise
reject(error) - allows to reject promise from 'outside'. It is an alias for
set(error)
isSettled() - returns
true
if value|Error wasset
Example
'use strict'
const http = require('http')
const avalue = require('avalue')
function myServer() {
const address = avalue()
const server = http
.createServer((req, res) => {})
.on('listening', () => address.set(server.address()))
const httpClose = server.close
Object.assign(server, {
close: (...args) => {
address.unset()
httpClose.apply(server, ...args)
},
getAddress: address.get,
})
Object.defineProperties(server, {
port: {
get: () => (address.value() ? address.value().port : undefined),
},
})
return server
}
const server = myServer()
server.getAddress(true) // returns resolved value undefined
const address = server.getAddress() // eventually resolves to {port: 80}
server.listen(80)
address.then(() => {
server.port // 80
server.getAddress() // still same (now resolved) promise of {port: 80}
server.getAddress(true) // returns resolved value {port:80}
server.close()
server.port //undefined
server.getAddress(true) // returns resolved value undefined
server.getAddress() // new promise that eventually resolves to {port: 90}
server.listen(90)
})