Thinking about it, one option would be to call back with a new Error("AlreadyConnecting"); and then inside the callbackWrapper, we don't set _connecting to false if the err is AlreadyConnecting.