code: function cdefer() {
    const maxWait = 20000
    var resolve, reject
    var promise = new Promise((...args) => {
        resolve = args[0]
        reject = args[1]
      })
      .timeout(maxWait)
    return {
      resolve: resolve,
      reject: reject,
      promise: promise
    }
  }
docs: Promise constructor using defer pattern to expose its promise, resolve, reject. Has a timeout of 60s.
  @return {defer} The Promise.defer legacy msg.
   /* istanbul ignore next