title: Promisify Socket.IO / EventEmitter
body: <p>I am a bit surprised by the fact that I don't find much when googling for Promisify Socket.IO. Is it that uncommon?</p>
  
  <p>I also had troubles to promisify it myself:</p>
  
  <pre><code>Promise.promisifyAll(io)
  io.onceAsync('connect')
  .then((socket) =&gt; ...)
  .catch((err) =&gt; console.log(error))
  </code></pre>
  
  <p>This always triggers the error case, I assume because <code>.once</code> is a callback with only one argument, where Promises expect the first one to be the error. Any idea how to deal with these kind of things?</p>