Created
January 6, 2017 10:18
-
-
Save impaler/3ec412c1edbe32f0ad033a8c0244e56d to your computer and use it in GitHub Desktop.
Get an available port from a promise using the nodejs net module
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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