updateEstimate = function Promise_then_updateEstimate() {
            deferred.setEstimate(self.getEstimate() + ms);
        }
Creates a new promise, waits for this promise to be resolved, and informs
either the fullfilled or rejected handler of the result. Whatever result
comes of the onreturn or onthrow handler, a value returned, a promise
returned, or an error thrown, becomes the resolution for the promise
returned by `then`.

@param onreturn
@param onthrow
@returns {Promise} for the result of `onreturn` or `onthrow`.