final = function() {
    return new Promise((resolve) => resolve())
      .then(fn)
      .then(() => me);
  }
Execute given callback when the promise either resolves or rejects.
Same semantics as Node's Promise.finally()
@param {Function | null | undefined} [fn]
@returns {Promise} promise