Skip to content

Instantly share code, notes, and snippets.

@impaler
Created January 6, 2017 10:18
Show Gist options
  • Save impaler/3ec412c1edbe32f0ad033a8c0244e56d to your computer and use it in GitHub Desktop.
Save impaler/3ec412c1edbe32f0ad033a8c0244e56d to your computer and use it in GitHub Desktop.
Get an available port from a promise using the nodejs net module
const net = require('net')
async function getAvailablePort () {
return new Promise((resolve, reject) => {
let server = net.createServer()
server.unref()
server.on('error', reject)
// zero gives it away ;)
server.listen(0, () => {
let port = server.address().port
server.close(() => {
resolve(port)
})
})
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment