code: function (callback) {
          return new Promise((resolve, reject) => {
            this.end(result => {
              try {
                resolve(callback(result))
              } catch (err) {
                reject(err)
              }
            })
          })
        }
docs: Proxies the call to end. This adds support for using promises as well as async/await.
  
  @param  {Function} callback
  @return {Promise}