Deferred = function() {
		/**
		 * Promise instance of the Deferred
		 *
		 * @type {Promise<T>}
		 * @public
		 */
		this.promise = new Promise((resolve, reject) => {
			this.resolve = resolve;
			this.reject = reject;
		});
	}
@class Creates a <code>Deferred</code> instance which represents a future value.

While a <code>Promise</code> can only be resolved or rejected by calling the respective methods in its constructor, a <code>Deferred</code>
can be resolved or rejected via <code>resolve</code> or <code>reject</code> methods at any point.
A <code>Deferred</code> object creates a <code>Promise</code> instance which functions as a proxy for the future result.
This <code>Promise</code> object can be accessed via the <code>promise</code> property of the <code>Deferred</code> object.

@alias module:sap/base/util/Deferred
@since 1.90
@public
@template {any} [T=any]