Reduce code duplication in DefaultPromise