Originally, portscanner would scan as many ports as it could and the first to return with a status was returned. Unfortunately, this can throw an error on systems when scanning more than 50 ports or so at a time (see Issue #2). The fix for Issue #2 waits for the status of a port before scanning the next one.
But c'mon, waiting is node is a waste. I propose scanning a batch of 50 ports asynchronously, then if none of those return a matching port status, try the next batch of 50.
You could consider using supertest to test http asynchronously. Give it a try, maybe you'll like it.